需要帮助理解 android.volley.requestQueue 文档示例的语法

Need help understanding syntax of android.volley.requestQueue documentation example

我不明白如何在这个取自 Android documentation

的示例中为 INSTANCE 变量赋值
MySingleton constructor(context: Context) {
companion object {
    @Volatile
    private var INSTANCE: MySingleton? = null
    fun getInstance(context: Context) =
            INSTANCE ?: synchronized(this) {
                INSTANCE ?: MySingleton(context)
            }
}

我理解代码的作用;我只是不明白语法。好像里面应该有等号吧

其实...

It seems like there should be some equal signs in there instead of colons.

你完全正确!这个例子是错误的!它转换为以下 Java 代码:

private static volatile MySingleton INSTANCE;

public static MySingleton getInstance(Context context) {
    if(INSTANCE != null) { 
        return INSTANCE;
    } else {
        synchronized(this) {
            if(INSTANCE != null) {
                return INSTANCE;
            }
            return new MySingleton(context);
        }
    }
}

正如您所见,INSTANCE 变量实际上从未被设置过。 -_-

应该是:

class MySingleton(context: Context) {
    companion object {
        @Volatile @JvmField private var INSTANCE: MySingleton? = null
        fun getInstance(context: Context) =
            INSTANCE ?: synchronized(this) {
                INSTANCE ?: MySingleton(context).also { INSTANCE = it }
            }
    }
}