首页 > 解决方案 > Kotlin:如何使用变量指定命名参数?

问题描述

假设我有两种方法:

    private fun method1(a: A): A {
        return a.copy(v1 = null)
    }

    private fun method2(a: A): A {
        return a.copy(v2 = null)
    }

我可以写类似的东西:

    private fun commonMethod(a: A, variableToChange: String): A {
        return a.copy($variableToChange = null)
    }

换句话说,我可以使用变量来引用命名参数吗?

标签: kotlin

解决方案


如果我正确理解您要归档的内容,我建议您将 setter 传递给该方法,例如

fun <A>  changer (a: A, setter: (a: A) -> Unit ) {
    // do stuff
    setter(a)
}

这是你想要的?


推荐阅读