意外的标记(使用“;”分隔同一行中的表达式)

时间:2018-09-07 18:36:05

标签: android kotlin

我不知道为什么我在编写这段Kotlin代码时遇到了这样的问题

Log.d(TAG, msg:"onCreate called. Score is :$score")

3 个答案:

答案 0 :(得分:5)

我假设您正在尝试使用命名参数,将我的msg判断为Log.d中第二个参数的名称,并在您的代码中将其匹配。但是,您确实有两个问题:

  • 命名参数仅适用于全Kotlin代码。如果该功能是Java语言,则无法使用
  • 命名参数使用=,而不是:

您可以这样做:

data class SomeClass(val x: String, val y: String)
fun someFunction(){
    SomeClass(y = "y", x = "x")
}

但是您不能为Log.d做这件事,因为它不是Kotlin函数。作为参考,这是适当的语法:

Log.d(TAG, msg="onCreate called. Score is :$score")

但是它不会编译,因为Named arguments are not allowed for non-Kotlin functions。因此将其删除。您不能在该方法中使用命名参数。

答案 1 :(得分:0)

删除“ msg:”

Log.d(TAG, "onCreate called. Score is :$score")

答案 2 :(得分:0)

尝试使用Log.d(TAG,“ msg:onCreate被调用。分数为:$ score”)