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]]
注スウィフトが強く型付けされていることを、デフォルトでは、配列は intの配列でなければならない、-unlikeのObjective-C-の配列は、データ型が混在することはできません。
なぜあなたはAnyタイプすべきだ:任意の関数 型を含め、まったくタイプのインスタンスを
を表すことができます。
こと注:
はあなたが明示的にそれらが提供する行動と 能力を必要とする場合にのみ、任意とANYOBJECTを使用してください。 コード内で使用する予定のタイプについては、常に具体的にお伝えすることをお勧めします。
アクセス要素:デフォルト
、[Any]
配列からの要素にアクセスする、例えば、Any
のタイプのものであるべきである。
let numberOne = arr2[0] // type of Any
let myArray = arr2[3] // type of Any
所望のデータ・タイプを取得します、あなたはを使用してくださいas?
operをキャストする必要があります次のようにはオプション、を結合してインフレータ:
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!
演算子を使用すると、型が一致しない場合、アプリケーションがクラッシュします。あなたはこのQ&AとType Castingドキュメントをチェックすることをお勧めしますas
演算子の詳細については
let oneInt = arr2[0] as! Int // works fine
let oneString = arr2[0] as! String // CRASH!
。
まず、配列の種類を定義します。 –
[Swiftの配列に要素を追加する]の可能な複製(http://stackoverflow.com/questions/24002733/add-an-element-to-an-array-in-swift) –