首页 > 解决方案 > 意外标记(使用 ';' 分隔同一行上的表达式)

问题描述

我不知道为什么我在编写这个 kotlin 代码时会遇到这样的问题

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

标签: androidkotlin

解决方案


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

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

就像你可以做的那样:

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. 所以删除它。您不能在该方法中使用命名参数。


推荐阅读