Swift遗漏了。自己调用一个需要元类型的函数?

时间:2015-10-31 02:21:12

标签: swift

这是我写的代码:

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)中测试代码。

1 个答案:

答案 0 :(得分:1)

我也在苹果官方论坛上提问,并在那里得到答案:

  

这是Swift的一个着名的无记录功能,因为1.0(或以前的> beta,我无法确认)。

     

使用单一类型参数调用方法或函数时,可以省略&gt; .self。   我想这个功能包含在Swift中以制作类似sizeof的函数&gt;整洁,但不确定。

https://forums.developer.apple.com/thread/24980