在Kotlin支持棒棒糖

我正在学习Kotlin syntac和它的扩展。 我遇到过,如果你想在棒棒糖和以上运行代码,你可以做

 supportsLollipop { window.setStatusBarColor(Color.BLACK) } 

这似乎很好,我想在我的代码中使用它,但得到一个错误“期待成员声明”。

在这里输入图像描述

 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) submitButton.setOnClickListener({ view -> longToast("Clicked") }) } inline fun supportsLollipop(code: () -> Unit) { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { code() } } supportsLollipop { Log.d("Test", "Test") } } 

我需要为它安装任何扩展吗? 你有想法吗?

你可以通过https://android.jlelse.eu/keddit-part-7-infinite-scroll-higher-order-functions-lambdas-3a11fbd5090e

 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) submitButton.setOnClickListener({ view -> longToast("Clicked") }) supportsLollipop { Log.d("Test", "Test") } } inline fun supportsLollipop(code: () -> Unit) { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { code() } } } 

你需要有这个功能。

  fun supportsLollipop(code: () -> Unit) { supportsVersion(code, 21) } private fun supportsVersion(code: () -> Unit, sdk: Int) { if (Build.VERSION.SDK_INT >= sdk) { code.invoke() } }