从参考中对此进行了测试:https ://developer.apple.com/documentation/swift
var string = String(count: 5, repeatedValue: "a")
// string is "aaaaa"
我收到了这个错误:
操场执行失败:错误::5:14:错误:找不到接受提供的参数的“init”的重载 var string = String(count:5,repeatValue:“a”)
这真的有效吗?
从参考中对此进行了测试:https ://developer.apple.com/documentation/swift
var string = String(count: 5, repeatedValue: "a")
// string is "aaaaa"
我收到了这个错误:
操场执行失败:错误::5:14:错误:找不到接受提供的参数的“init”的重载 var string = String(count:5,repeatValue:“a”)
这真的有效吗?
似乎您必须显式地将 Character 类型传递给它才能起作用。这对我有用。
let char = Character("a")
let string = String(count: 5, repeatedValue: char)
虽然,这一切也可能混杂了错误。我相信你这样做的方式应该是独立的。而且我似乎根本无法在这个初始化程序上完成代码。
编辑:我要解决错误。以下编译就好了。
let array = Array(count: 5, repeatedValue: "a")
为了未来的搜索者的利益:从 Swift 3 开始,使用init(repeating:count:)
.
let sososo = String(repeating: "so", count: 3)
这工作得很好:
var str9 = String(count: 5,repeatedValue: Character("c"))
对于 swift 3.x 中的任何人来说,现在这样的事情就像一个魅力。
var string = String(repeating: "a", count: 5)
我知道这是一个老问题,并且已经有了答案。但是我想我知道为什么 String(count: 5, repeatedValue: "a")
不起作用。
事情是String
有两个看起来相似的初始化程序:
init(count: Int, repeatedValue: Character)
init(count: Int, repeatedValue: UnicodeScalar)
因此,在这种情况下,编译器无法判断文字是否为Character
or UnicodeScalar
,因此如果您不传递显式,则编译时错误Character
。要确认"a"
可以解释为UnicodeScalar
您可以检查此行是否编译:
let a: UnicodeScalar = "a"
斯威夫特 3:
var array = Array(repeating: 0, count: 5)
输出:[0, 0, 0, 0, 0]