What is a slice in Swift?(斯威夫特的切球是什么?)
问题描述
SWIFT中的切片是什么?它与数组有什么不同?
文档中下标(Range)的类型签名为:
subscript(Range<Int>) -> Slice<T>
为什么不返回另一个Array<T>
而不是返回一个Slice<T>
?
看起来我可以用数组连接切片:
var list = ["hello", "world"]
var slice: Array<String> = [] + list[0..list.count]
但这会产生错误:
找不到接受提供的 参数
var list = ["hello", "world"]
var slice: Array<String> = list[0..list.count]
什么是切片?
推荐答案
切片指向数组。如果数组已存在,并且切片只能描述其所需部分,则创建另一个数组没有意义。
加法会导致隐式强制,因此它是有效的。若要使分配生效,您需要强制:
var list = ["hello", "world"]
var slice: Array<String> = Array(list[0..<list.count])
这篇关于斯威夫特的切球是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!