小编Sim*_*obs的帖子

在 Kotlin 中,函数名称后面的大括号是什么意思?

Kotlin 初学者:我正在查看 Jetpack Compose 教程,并且遇到了以下代码片段:

@Composable
fun MessageCard(msg: Message) {
    Column {
        Text(text = msg.author)
        Text(text = msg.body)
    }
}
Run Code Online (Sandbox Code Playgroud)

如果Column是一个函数名,没有“()”但有{}怎么调用呢?我希望它像 Text 函数一样被调用。

我尝试将 Column 视为对象或代码块名称,但这都没有意义。

kotlin android-jetpack-compose

5
推荐指数
2
解决办法
237
查看次数

Kotlin 在访问 Map 条目方面过于宽松

现在 Kotlin 中的一些事情让我非常沮丧,我不知道如何解决这个问题:

    val map = mapOf(1 to "one")
    val value = map[1] // value is String? instead of String
    val certainlyNot = map[999] // value is String? instead of compiler error
Run Code Online (Sandbox Code Playgroud)

在我看来,编译器应该能够推断出1键的值类型 String ,并且在尝试访问999键时应该阻止编译。

哪种数据结构更适合我的需求?

编辑:上下文 - >我需要访问像这样的循环中的值

    for (key in map.keys) {
        val myValue = map[key] // myValue is String?
                               // but I don't understand why I am forced to do null checks
                               // when the key in question is certainly in the map …
Run Code Online (Sandbox Code Playgroud)

kotlin

0
推荐指数
1
解决办法
109
查看次数

标签 统计

kotlin ×2

android-jetpack-compose ×1