Swift 限制数组项
我有一个字符串数组,叫做歌曲列表。这个数组有时可能是20,有时是1。这个数字是无法预测的 我试着,只使用其中的4项-如果它有4个以上的元素。如果没有,则使用其余的 我的代码:Swift 限制数组项,swift,Swift,我有一个字符串数组,叫做歌曲列表。这个数组有时可能是20,有时是1。这个数字是无法预测的 我试着,只使用其中的4项-如果它有4个以上的元素。如果没有,则使用其余的 我的代码: let prefix = list_of_songs.prefix(upTo: 4) var result = [String]() for i in prefix { result.append(i) } 结果: 具有4个或更多元素。工作| 具有1或2个元素: 致命错误:数组索引超出范围 您可以通过以下
let prefix = list_of_songs.prefix(upTo: 4)
var result = [String]()
for i in prefix {
result.append(i)
}
结果:
具有4个或更多元素。工作|
具有1或2个元素:
致命错误:数组索引超出范围
您可以通过以下方式实现:
let result = Array(list_of_songs.prefix(4))
if list_of_songs.count > 4 {
list_of_songs.removeSubrange(4...)
}
print(list_of_songs)
或
或
您可以删除不需要的数组元素,如下所示:
let result = Array(list_of_songs.prefix(4))
if list_of_songs.count > 4 {
list_of_songs.removeSubrange(4...)
}
print(list_of_songs)
只需使用不带参数标签的前缀:
let result = list_of_songs.prefix(4)
不同之处在于,对于prefixupTo:参数必须指定数组中的有效索引,而对于prefix:则指定要检索的元素数-记录为
如果最大长度超过集合中的元素数,则结果将包含集合中的所有元素
“结尾必须是集合的有效索引。”限制数组项与在数组前面加前缀不同…@ielyamani我认为标题并不重要,只要问题正文本身简短。这里的结果是数组片段,而不是[String]