Arrays 使用Swift的for in循环中的一组字符串填充数组
我有点被弄糊涂了。我想用来自for-in循环的字符串值填充数组 这里有一个例子Arrays 使用Swift的for in循环中的一组字符串填充数组,arrays,swift,for-in-loop,Arrays,Swift,For In Loop,我有点被弄糊涂了。我想用来自for-in循环的字符串值填充数组 这里有一个例子 let names = ["Anna", "Alex", "Brian", "Jack"] for x in names { println(x) } 当前x值将生成4个字符串值(Anna、Alex、Brian、Jack) 然而,我需要一些关于如何将这四个值返回到数组中的建议。先谢谢你 for-in表达式右侧的任何内容都必须是SequenceType数组,可以用任何序列类型初始化。如果你只是在做这
let names = ["Anna", "Alex", "Brian", "Jack"]
for x in names {
println(x)
}
当前x值将生成4个字符串值(Anna、Alex、Brian、Jack)
然而,我需要一些关于如何将这四个值返回到数组中的建议。先谢谢你 for-in表达式右侧的任何内容都必须是
SequenceType
<代码>数组,可以用任何序列类型
初始化。如果你只是在做这样的事情:
var newArray: [String] = []
for value in exoticSequence {
newArray.append(value)
}
通过这样做,同样的事情也可以完成(更快):
let newArray = Array(exoticSequence)
无论是什么类型的exoticSequence
:如果in循环中的起作用,Array()
将起作用
但是,如果您正在对exoticSequence
应用某种转换,或者需要某种副作用,.map()
可能是一种方法<任何SequenceType
上的code>.map()
都可以返回数组。同样,这是更快、更清晰的:
let exoticSequence = [1, 2, 3]
let newArray = exoticSequence.map {
value -> Int in
// You can put whatever would have been in your for-in loop here
print(value)
// In a way, the return statement will replace the append function
let whatYouWouldHaveAppended = value * 2
return whatYouWouldHaveAppended
}
newArray // [2, 4, 6]
这相当于:
let exoticSequence = [1, 2, 3]
var newArray: [Int] = []
for value in exoticSequence {
print(value)
let whatYouWouldHaveAppended = value * 2
newArray.append(whatYouWouldHaveAppended)
}
newArray // [2, 4, 6]
names
已经是您想要的4个字符串的数组。。。或者我误解了这个问题?对不起,我不清楚。我的意思是,如果我想制作一个新的数组,比如说由这四个名称组成的namearray2。我如何使用for in语句生成的值来实现它?最简单的方法是不使用for循环:let newNames=names
或者,如果要对字符串执行一些转换,需要map
即let uppercaseNames=names.map{$0.uppercaseString}
创建一个新数组,其中包含[“安娜”、“亚历克斯”、“布赖恩”、“杰克”]