新手迅速。我们有
var b : [Double] = [0,1,2,3,4,5,6,7,8,9]
var c = 5
我想用b的第一个c元素调用func xyz。
var a = xyz(b[0...c])
- 无效
答案 0 :(得分:0)
使用Range
选择数组会生成ArraySlice
,而不是Array
。
所以如果你想通过这个"切片"功能:
var b : [Double] = [0,1,2,3,4,5,6,7,8,9]
var c = 5
let slice = b[0...c]
你必须让你的函数接受一个ArraySlice
的正确类型:
func xyz(chunk: ArraySlice<Double>) {
print(chunk)
}
xyz(slice)
但是如果你想只使用普通数组,那么让函数接受一个数组,并在调用函数时将切片转换为数组:
func xyz(chunk: [Double]) {
print(chunk)
}
xyz(Array(slice))