这是我写的代码:
M
我想知道为什么func printType<T: Any>(one: T.Type) {
print(one)
}
func printType2<T: Any>(one: T.Type, name: String) {
print(one)
}
printType(Set<Int>)
printType2(Set<Int>.self, name: "name")
能够奏效。在printType(Set<Int>)
中,我不能遗漏自己使其发挥作用。
修改
我想知道哪些规则可以省略printType2(Set<Int>.self, name: "name")
。我试图在Apple官方参考资料中找到它,但失败了。
修改
我在Xcode版本7.1(7B91b)中测试代码。
答案 0 :(得分:1)
我也在苹果官方论坛上提问,并在那里得到答案:
这是Swift的一个着名的无记录功能,因为1.0(或以前的> beta,我无法确认)。
使用单一类型参数调用方法或函数时,可以省略&gt; .self。 我想这个功能包含在Swift中以制作类似sizeof的函数&gt;整洁,但不确定。