从参考文献中测试过:https://developer.apple.com/documentation/swift
var string = String(count: 5, repeatedValue: "a")
// string is "aaaaa"
我收到了这个错误:
游乐场执行失败:错误:: 5:14:错误:无法找到' init'接受提供的参数 var string = String(count:5,repeatedValue:" a")
这实际上有用吗?
答案 0 :(得分:26)
似乎你必须明确地传入一个Character类型才能运行。这对我有用。
let char = Character("a")
let string = String(count: 5, repeatedValue: char)
虽然,所有这些也可能有混杂的错误。我相信你这样做的方式应该是独立的。而且我似乎无法在此初始化程序上完成代码完成。
编辑:我和bug一起去了。以下编译就好了。
let array = Array(count: 5, repeatedValue: "a")
答案 1 :(得分:7)
为了未来搜索者的利益:从Swift 3开始,使用init(repeating:count:)
。
答案 2 :(得分:6)
这很好用:
var str9 = String(count: 5,repeatedValue: Character("c"))
答案 3 :(得分:1)
对于swift 3.x中的任何人来说,现在这样的东西就像魅力一样。
var string = String(repeating: "a", count: 5)
答案 4 :(得分:0)
我知道这是一个老问题,已经有了答案。但是我想我知道为什么 String(count: 5, repeatedValue: "a")
不起作用。
事情String
有两个相似的initialisers:
init(count: Int, repeatedValue: Character)
init(count: Int, repeatedValue: UnicodeScalar)
因此,在这种情况下,编译器无法判断文字是Character
还是UnicodeScalar
,因此如果您没有传递显式Character
,则编译时错误。要确认"a"
可以解释为UnicodeScalar
,您可以检查此行是否已编译:
let a: UnicodeScalar = "a"
答案 5 :(得分:0)
斯威夫特3:
var array = Array(repeating: 0, count: 5)
输出:[0,0,0,0,0]