Does Swift init(count:, repeatedValue:) work?
参考:https://developer.apple.com/documentation/swift
1 2 | var string = String(count: 5, repeatedValue:"a") // string is"aaaaa" |
我得到这个错误:
Playground execution failed: error: :5:14: error: could not find an overload for 'init' that accepts the supplied arguments
var string = String(count: 5, repeatedValue:"a")
号
这真的有效吗?
似乎您必须显式地将字符类型传递给它才能运行。这对我有用。
1 2 | let char = Character("a") let string = String(count: 5, repeatedValue: char) |
尽管如此,也可能有bug与所有这些混为一谈。我相信你这样做的方式应该是独立的。我似乎根本无法在这个初始值设定项上完成代码。
编辑:我和Bug一起去。下面的汇编很好。
1 | let array = Array(count: 5, repeatedValue:"a") |
号
为了未来搜索者的利益:从Swift 3开始,使用
这很好用:
1 | var str9 = String(count: 5,repeatedValue: Character("c")) |
对于任何穿Swift 3.x的人来说,现在像这样的东西会很有魅力。
1 | var string = String(repeating:"a", count: 5) |
。
斯威夫特3:
1 | var array = Array(repeating: 0, count: 5) |
。
输出:[0,0,0,0,0]
我知道这是个老问题,已经有了答案。不过,我想我知道为什么
问题是,
1 2 | init(count: Int, repeatedValue: Character) init(count: Int, repeatedValue: UnicodeScalar) |
。
因此,在这种情况下,编译器无法判断文字是
1 | let a: UnicodeScalar ="a" |