我有这样的功能:
func next(step: Int = 1){
    //....
}
现在我想定义一个类型别名,以便我可以轻松地传递这个函数.
但是,我无法找到声明第一个参数具有默认值的方法.我尝试过这样的事情
typealias ActionNext = (step: Int = default) -> ()
var nextFunc: ActionNext = next
但他们都给我一个错误信息
元组类型中不允许使用默认参数
有没有办法为这种函数定义一个类型?
luk*_*302 10
不,那是不可能的
说明:
一个类型别名声明介绍了现有类型的命名别名到你的程序.
(step: Int = 1) -> ()不是一个合适的类型.例如(step: Int) -> (),类型在那里不允许默认值.
如果你写
typealias ActionNext = (Int) -> ()
var nextFunc: ActionNext = next
有用.甚至当你写作时(step: Int) -> ()
但我认为你想要实现的是能够调用nextFunc()省略参数并使用其默认值.这是不可能的.要了解原因,您可以按照Type Alias Declaration语法 - 在type您无法指定默认值.
| 归档时间: | 
 | 
| 查看次数: | 3779 次 | 
| 最近记录: |