是否可以在Swift中传递typealias
作为函数参数?
我想做的事情如下:
func doSomethingWithType(type: typealias)
答案 0 :(得分:4)
类型别名只是现有类型的同义词 - 它不会创建新类型,只是创建一个新名称。
也就是说,如果你想将一个类型传递给一个函数,你可以使它成为通用的,并按如下方式定义它:
func doSomething<T>(type: T.Type) {
println(type)
}
您可以通过传递类型来调用它 - 例如:
doSomething(String.self)
将打印
"Swift.String"
如果为String
定义了一个类型,则输出不会改变:
typealias MyString = String
doSomething(MyString.self)
答案 1 :(得分:1)
类型别名声明引入了现有类型的命名别名 进入你的程序。类型别名声明使用。声明 关键字typealias并具有以下形式:
typealias name = existing type
声明类型别名后,可以使用别名 在您的程序中的任何位置的现有类型。现有的类型可以 是命名类型或复合类型。类型别名不会创建新的 类型;它们只是允许名称引用现有类型。
所以你可以像这样使用它:
typealias yourType = String
func doSomethingWithType(type: yourType) {
}