如果在swift中创建了两个数组,如下所示:
var a:[CGFloat] = [1, 2, 3]
var b:[CGFloat] = [4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
他们如何合并[1, 2, 3, 4, 5, 6]?
我是Swift的新手.我一直在做Java编程.我有一个在Swift中编码的场景.
以下代码使用Java.我需要在Swift中为以下场景编写代码
// With String array - strArr1
String strArr1[] = {"Some1","Some2"}
String strArr2[] = {"Somethingelse1","Somethingelse2"}
for( int i=0;i< strArr1.length;i++){
System.out.println(strArr1[i] + " - "+ strArr2[i]);
}
Run Code Online (Sandbox Code Playgroud)
我在swift中有几个数组
var strArr1: [String] = ["Some1","Some2"]
var strArr2: [String] = ["Somethingelse1","Somethingelse2"]
for data in strArr1{
println(data)
}
for data in strArr2{
println(data)
}
// I need to loop over in single for loop based on index.
Run Code Online (Sandbox Code Playgroud)
您能否根据索引提供有关循环语法的帮助
我想加入两个(或更多)序列,然后创建一系列元组.第一个元组包含每个序列的第一个元素,第二个元组包含第二个元素等等......下面是一个示例函数,它接受两个数组并创建第三个元组数组.然后我可以使用此序列来处理map(),filter()和reduce()函数.
我的例子有效,但缺乏多种方式.它适用于不适用于所有序列的数组,当第一个序列用完元素时,它会停止生成元组.我希望nils能够在元组中找到无法提供元素的短序列.它只适用于两个数组,我希望它适用于任意数量的序列,
部分解决方案会有所帮助.我是一个功能性编程新手,所以这个功能的正确名称也将受到赞赏.也许它已经在switfz库中我只知道它叫什么.我选择了"join",因为它大致类似于SQL"join",它也构建了元组(aka行)
func join<T> (s1: Array<T>, s2: Array<T>) -> Array<(T,T)> {
var g1 = s1.generate();
var g2 = s2.generate();
var result:Array<(T,T)> = []
while let e1 = g1.next() {
if let e2 = g2.next() {
result.append((e1,e2))
}
}
return result
}
class Hamming {
class func compute(input: String, against: String) -> Int {
return join(Array(input),Array(against)).reduce(0){ return ($1.0 != $1.1) ? $0 + 1 : $0 }
}
}
Hamming.compute("abcde","abcdf") // 1
Run Code Online (Sandbox Code Playgroud) 如果我有两个阵列,例如
let one = [1,3,5]
let two = [2,4,6]
Run Code Online (Sandbox Code Playgroud)
我想以下列模式合并/交错数组[one [0],two [0],one [1],two [1] etc ....]
//prints [1,2,3,4,5,6]
let comibned = mergeFunction(one, two)
print(combined)
Run Code Online (Sandbox Code Playgroud)
实现组合功能的好方法是什么?
func mergeFunction(one: [T], _ two: [T]) -> [T] {
var mergedArray = [T]()
//What goes here
return mergedArray
}
Run Code Online (Sandbox Code Playgroud)