当前位置:  开发笔记 > 编程语言 > 正文

定义函数类型时,元组类型中不允许使用默认参数

如何解决《定义函数类型时,元组类型中不允许使用默认参数》经验,为你挑选了1个好方法。

我有这样的功能:

func next(step: Int = 1){
    //....
}

现在我想定义一个类型别名,以便我可以轻松地传递这个函数.

但是,我无法找到声明第一个参数具有默认值的方法.我尝试过这样的事情

typealias ActionNext = (step: Int = default) -> ()

var nextFunc: ActionNext = next

但他们都给我一个错误信息

元组类型中不允许使用默认参数

有没有办法为这种函数定义一个类型?



1> luk2302..:

,那是不可能的

说明:

一个类型别名声明介绍了现有类型的命名别名到你的程序.

(step: Int = 1) -> ()不是一个合适的类型.例如(step: Int) -> (),类型在那里不允许默认值.

如果你写

typealias ActionNext = (Int) -> ()

var nextFunc: ActionNext = next

有用.甚至当你写作时(step: Int) -> ()

但我认为你想要实现的是能够调用nextFunc()省略参数并使用其默认值.这是不可能的.要了解原因,您可以按照Type Alias Declaration语法 - 在type您无法指定默认值.


所以基本上你的回答是"不"......斯威夫特可能会非常失望.
推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有