Tag: 默认参数

使用默认参数键入Kotlin函数的签名

假设我有: fun addInvoker(adder: () -> Int = ::add): Int{ return adder() } fun add(num1:Int = 1, num2:Int = 1): Int{ return num1 + num2 } 我得到一个错误,因为:: add有两个参数,但addInvoker的签名要求它有零参数。 但是,如果我将其更改为: fun addInvoker(adder: (Int, Int) -> Int = ::add): Int{ return adder() } fun add(num1:Int = 1, num2:Int = 1): Int{ return num1 + num2 } 然后我不能调用加法器(),也就是用默认参数调用add。 那么,有什么办法可以使::添加默认参数到invokeAdder,但仍然调用添加与adder() […]

Kotlin:如何使用第一个参数的默认值进行函数调用,并为第二个parameter passing一个值?

我想知道如何调用默认参数的函数,当你想指定第二个参数的值。 在下面的简单例子中,我展示了addTwo()接受两个参数。 ‘第一’参数有一个默认值,但’秒’没有。 我将如何调用这个函数,指定我想使用默认值为’第一’与给定值为2’秒’? 调用addTwo(2)会引发错误。 fun main(args: Array) { var sum = addTwo(1,2) // works fine var nextSum = addTwo(2) // ERROR: No value passed for parameter second } fun addTwo(first: Int = 0, second: Int): Int { return first + second }

在Kotlin中访问函数的默认参数值

函数的默认参数值是否可以从函数扩展或其他任何地方访问? fun DieRoll.cheatRoll():Int = roll(min = max -1) fun roll(min: Int = 1, max: Int = 6): Int = (min..max).rand()