有没有办法初始化 Swift 中的数组以具有某些类型 T 的重复值
Is there a way to initialize an array in Swift to have a repeated value of some Type T
在我的初始化函数中,我有:
self.x = [T](count: dimensions, repeatedValue: 0)
这不起作用。我如何让它工作。
我希望 x 是一个初始化为 0 的类型为 T 的数组。(T 直观上类似于 Int,但可以是其他一些数字表示形式。)
您的代码有效,您只需确保 T
可以从 0
(IntegerLiteralConvertible
)
转换
func test<T: IntegerLiteralConvertible>(dimensions: Int) -> [T] {
return [T](count: dimensions, repeatedValue: 0)
}
println(test(3) as [Int]) //[0, 0, 0]
println(test(3) as [Double]) //[0.0, 0.0, 0.0]
或者以某种方式确保 val 的类型为 T
func test<T>(dimensions: Int, val: T) -> [T] {
return [T](count: dimensions, repeatedValue: val)
}
println(test(3, 1)) //[1, 1, 1]
println(test(3, "a")) //[a, a, a]
在我的初始化函数中,我有:
self.x = [T](count: dimensions, repeatedValue: 0)
这不起作用。我如何让它工作。
我希望 x 是一个初始化为 0 的类型为 T 的数组。(T 直观上类似于 Int,但可以是其他一些数字表示形式。)
您的代码有效,您只需确保 T
可以从 0
(IntegerLiteralConvertible
)
func test<T: IntegerLiteralConvertible>(dimensions: Int) -> [T] {
return [T](count: dimensions, repeatedValue: 0)
}
println(test(3) as [Int]) //[0, 0, 0]
println(test(3) as [Double]) //[0.0, 0.0, 0.0]
或者以某种方式确保 val 的类型为 T
func test<T>(dimensions: Int, val: T) -> [T] {
return [T](count: dimensions, repeatedValue: val)
}
println(test(3, 1)) //[1, 1, 1]
println(test(3, "a")) //[a, a, a]