猫王"如果" Kotlin中的运算符作为函数默认参数

时间:2017-09-28 11:44:51

标签: kotlin

我很想知道,这在Kotlin中是否可行?如果是的话,它的正确语法是什么?

如何修改函数参数:

  1. 可以传递空值

  2. 检查,如果传递null - >然后name = ""其他name = name

  3. 怎么办?

    fun simpleFunction(name: String?) {
          ...
    }
    

    我试过

    fun simpleFunction(name: String? = null ? "" : name) {
       ...
    }
    

1 个答案:

答案 0 :(得分:4)

至少以这种方式是不可能的,因为只有在函数调用站点没有传递参数时才应用默认参数。

您可以尝试执行以下操作之一:

  • 在函数体内执行此检查

    fun simpleFunction(name: String?) {
        val actualName = name ?: ""
        ...
    }
    
  • 创建一个单独的函数重载,它接受可以为空的值:

    @JvmName("simpleFunctionNullableName")
    fun simpleFunction(name: String?) = simpleFunction(name ?: "")
    
    fun simpleFunction(name: String) { // name is not-null
        ...
    }