虽然Swift中的link:Add a element to a array展示了如何将一个项目添加到一个数组中,但我的问题是如何将一个数组作为一个项目添加到另一个数组中。
我没有发现任何类似的问题——我有以下阵列:
[1,2,3]
和[4,5,6]
我想将第一个数组作为一个整体附加到另一个数组,所以我得到这样的结果:
[4,5,6,[1,2,3]]
请注意,这不是预期的结果:
[4,5,6,1,2,3]
我将如何实现这一点?
var arrayOne = [1,2,3]
var arrayTwo = [4,5,6]
如果希望结果为:[4,5,6,[1,2,3]]
arrayTwo.append(arrayOne)
上面的代码将arrayOne转换为单个元素,并将其添加到arrayTwo的末尾。
如果你想要结果为:[4,5,6,1,2,3]那么,
arrayTwo.append(contentsOf: arrayOne)
上面的代码将在arrayTwo的末尾添加arrayOne的所有元素。
谢谢
var a: [Any] = [1,2,3]
var b: [Int] = [3,4,5]
a.append(b) // [1, 2, 3, [3, 4, 5]]
在这种情况下,容器数组的类型应为[Any]
,以使其包含int和int数组。
let arr1 = [1,2,3] // by default, it should be of type [Int]
let arr2:[Any] = [4,5,6,arr1]
print(arr2) // [4, 5, 6, [1, 2, 3]]
请注意,Swift是强类型的,默认情况下,数组必须是整数数组,这与Objective-C不同,数组不能包含混合的数据类型。
这就是为什么你应该选择任何类型:
Any可以表示任何类型的实例,包括函数类型。
请注意:
仅当您明确需要Any和AnyObject提供的行为和功能时,才使用它们。最好是明确说明代码中希望使用的类型。
访问元素:
默认情况下,从[Any]
数组访问元素的类型应为Any
,例如:
let numberOne = arr2[0] // type of Any
let myArray = arr2[3] // type of Any
为了获得所需的数据类型,您应该使用带有可选绑定的as?
运算符对其进行强制转换,如下所示:
if let oneInt = arr2[0] as? Int {
print("one is an Int and it equals to: \(oneInt)")
} else {
print("one is NOT ad Int")
}
// one is an Int and it equals to: 4
if let oneString = arr2[0] as? String {
print("one is an Int and it equals to: \(oneString)")
} else {
print("one is NOT ad Int")
}
// one is NOT ad Int
备注:使用as
运算符将导致应用程序崩溃。
let oneInt = arr2[0] as! Int // works fine
let oneString = arr2[0] as! String // CRASH!
有关
as
运算符的更多信息,您可能需要查看此问题
问题内容: 如何在不比较键的情况下将一个数组追加到另一个数组? 最后应该是: 如果我使用或,则将导致以下结果之一: 这样做应该是一件值得做的事,但是要用一种更优雅的方式: 问题答案: 是一种优雅的方式: 做类似的事情: 将不起作用,因为运算符实际上并未合并它们。如果它们的键与相同,则不会执行任何操作。
问题内容: 我有一个JavaScript数组,我想将其推送到一个新数组中。除了我不想成为。我想将所有项目推入新数组: 甚至更好: 因此,新数组现在包含各个数据数组的所有值。是否有一些速记可用,所以我不必遍历每个人,逐个添加项目? 问题答案: 使用concat函数,如下所示: 的值将为(且保持不变;为结果创建并返回一个新数组)。
有一种方法可以将特定的数字从一个数组复制到另一个数组吗? 例如: 我有一个数组 ,我想将奇数和偶数复制到不同的数组中。因此,结果应该是
我正试图将数据复制到数组中,但出现了一个错误,称无法转换类型。我该怎么解决这个问题?
问题内容: 最近有人要求我为一份工作编写3个测试程序。它们将仅使用核心Java API和我选择的任何测试框架来编写。应在适当的地方实施单元测试。 尽管我根本没有收到任何反馈,但我想他们不喜欢我的解决方案(否则我会收到他们的来信),所以我决定在这里展示我的程序,并询问这种实现是否可以认为是好的,并且,如果没有,那为什么呢? 为避免混淆,我现在只问第一个。 实现一个函数,以在另一个更大的数组中查找一个
我想知道是否可以将一个数组查找到另一个数组中。我不感兴趣的是寻找数组的单个元素,而是数组作为一个整体。我试过一些代码 编辑:使用的原因是我的数组的大小,粗略计算,可能是大约1000万。我想要一种高效的搜索技术。 我不确定我的代码是否应该工作。我有很多错误 bm.cpp:12:20:error:“make_boyer_moore_searcher”不是“std”std::make_boyer_moo