【发布时间】:2015-01-10 02:00:06
【问题描述】:
String 有以下初始化器(其中很多):
init(count: Int, repeatedValue: Character)
init(count: Int, repeatedValue: UnicodeScalar)
所以下面的工作不应该吗?
let str = String(count:8, repeatedValue:"*") // Error: "Extra argument 'count' in call"
编译器不应该能够推断出类型吗?!即使双引号 严格用于字符串文字,Character 和 UnicodeScalar 都符合 UnicodeScalarLiteralConvertible 协议。那么这里发生了什么?
当然,我总是可以做到repeatedValue:("*" as Character),但是推断类型有什么意义呢?!
【问题讨论】:
-
也许正是因为这种模棱两可?由于您的字符串文字可以转换为匹配任一方法,编译器应该选择哪一个?
标签: swift type-inference