Swiftで空の配列を作成するにはどうすればよいですか?


154

Swiftで配列を作成する方法に本当に戸惑っています。詳細を含む空の配列を作成する方法を教えてください。


9
var myArray:[String] = []
Leo Dabus



では、配列に何らかの種類のオブジェクトを格納したい場合はどうすればよいですか?
犬夜叉2015年

var myArray:[AnyObject] = []
Leo

回答:


296

どうぞ:

var yourArray = [String]()

上記は、文字列だけでなく、他のタイプでも機能します。これは単なる例です。

それに値を追加する

私はあなたが最終的にそれに値を追加したいと思うでしょう!

yourArray.append("String Value")

または

let someString = "You can also pass a string variable, like this!"
yourArray.append(someString)

挿入して追加

いくつかの値を取得したら、追加する代わりに新しい値を挿入できます。たとえば、新しいオブジェクトを配列の最初に挿入したい場合(最後に追加するのではなく):

yourArray.insert("Hey, I'm first!", atIndex: 0)

または、変数を使用して挿入をより柔軟にすることができます。

let lineCutter = "I'm going to be first soon."
let positionToInsertAt = 0
yourArray.insert(lineCutter, atIndex: positionToInsertAt)

最終的にいくつかのものを削除したい場合があります

var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"]
yourOtherArray.remove(at: 1)

上記は、配列のどこに値があるかがわかっている場合(つまり、そのインデックス値がわかっている場合)に最適です。インデックス値は0から始まるため、2番目のエントリはインデックス1になります。

インデックスを知らずに値を削除する

しかし、そうでない場合はどうなりますか?yourOtherArrayに数百の値があり、 "RemoveMe"に等しい値を削除したい場合はどうなりますか?

if let indexValue = yourOtherArray.index(of: "RemoveMe") {
    yourOtherArray.remove(at: indexValue)
}

これで始められるはずです!


なぜこの回答の票数が最も多いのかわかりません。これは、OPが決して尋ねなかった多くの質問に答えますが、「空の配列を作成する方法をいくつ教えてください」という質問の場合、空の配列を作成する1つの方法しか提供しません。
カル

27
var myArr1 = [AnyObject]()

任意のオブジェクトを保存できます

var myArr2 = [String]()

文字列のみを保存できます


配列リスト内に要素を追加する方法を教えてください
Gowthaman M

25

あなたは使うことができます

var firstNames: [String] = []

24

スウィフト3

Swiftでの空の配列を作成するには3つの方法があります(省略構文)方法が方法が常に推奨されます。

方法1:省略構文

var arr = [Int]()

方法2:配列初期化子

var arr = Array<Int>()

方法3:配列リテラルを含む配列

var arr:[Int] = []

方法4:クレジットは@BallpointBenに送られます

var arr:Array<Int> = []

1
またはvar arr: Array<Int> = [][T]は省略形ですArray<T>
BallpointBen 2017

@XinyangLiなぜ短縮構文が望ましいのですか?これらの4つの方法のコンパイル時間に違いはありますか?
KlimczakM

20

配列を迅速に作成/初期化するには、主に2つの方法があります。

var myArray = [Double]()

これにより、Doubleの配列が作成されます。

var myDoubles = [Double](count: 5, repeatedValue: 2.0)

これにより、5つのdoubleの配列が作成され、すべて2.0の値で初期化されます。


ありがとう、このように宣言できます `var myArray = [AnyObject]()`?
犬夜叉2015年

はい、これで 'AnyObject'の配列が作成され、そこにほとんど何でも入れることができます。このような配列が必要でない限り、 'var myArray = [String]()'のような特定の値を指定することをお勧めします。
アーロン

注スウィフト4を次のように値を繰り返すことで、配列を初期化するための構文を変更:var myDoubles = [Double](repeating: 2.0, count: 5)-ノートパラメータの順序の変化とのラベルの変化repeatedValuerepeating
HirdayGupta

8

文字列型の空の配列を宣言したい場合は、5つの異なる方法で行うことができます。

var myArray: Array<String> = Array()
var myArray = [String]()
var myArray: [String] = []
var myArray = Array<String>()
var myArray:Array<String> = []

任意のタイプの配列:-

    var myArray: Array<AnyObject> = Array()
    var myArray = [AnyObject]()
    var myArray: [AnyObject] = []
    var myArray = Array<AnyObject>()
    var myArray:Array<AnyObject> = []

整数型の配列:-

    var myArray: Array<Int> = Array()
    var myArray = [Int]()
    var myArray: [Int] = []
    var myArray = Array<Int>()
    var myArray:Array<Int> = []

7

以下は、慣れるまでの参考として使用できるSwift 4の一般的なタスクです。

    let emptyArray = [String]()
    let emptyDouble: [Double] = []

    let preLoadArray = Array(repeating: 0, count: 10) // initializes array with 10 default values of the number 0

    let arrayMix = [1, "two", 3] as [Any]
    var arrayNum = [1, 2, 3]
    var array = ["1", "two", "3"]
    array[1] = "2"
    array.append("4")
    array += ["5", "6"]
    array.insert("0", at: 0)
    array[0] = "Zero"
    array.insert(contentsOf: ["-3", "-2", "-1"], at: 0)
    array.remove(at: 0)
    array.removeLast()
    array = ["Replaces all indexes with this"]
    array.removeAll()

    for item in arrayMix {
        print(item)
    }

    for (index, element) in array.enumerated() {
        print(index)
        print(element)
    }

    for (index, _) in arrayNum.enumerated().reversed() {
        arrayNum.remove(at: index)
    }

    let words = "these words will be objects in an array".components(separatedBy: " ")
    print(words[1])

    var names = ["Jemima", "Peter", "David", "Kelly", "Isabella", "Adam"]
    names.sort() // sorts names in alphabetical order

    let nums = [1, 1234, 12, 123, 0, 999]
    print(nums.sorted()) // sorts numbers from lowest to highest

4

Swiftの配列は** Array <Element> **として記述されます。ここで、Elementは、配列に格納できる値のタイプです。

配列は次のように初期化できます:

let emptyArray = [String]()

文字列型の配列であることを示しています

emptyArray変数の型は、初期化子の型から[String]であると推測されます。

要素を持つ文字列型の配列を作成するため

var groceryList: [String] = ["Eggs", "Milk"]

groceryListは2つの項目で初期化されました

groceryList変数は「文字列値の配列」として宣言されています [文字 ]としてれ、[String]と記述されます。この特定の配列は、文字列の値タイプを指定しています。文字列値のみを格納できます。

配列には次のようなさまざまな特性があります。

-配列に要素があるかどうかを確認するには(配列が空かどうか)

isEmptyプロパティ(ブール値)は、countプロパティが0に等しいかどうかをチェックします。

if groceryList.isEmpty {
    print("The groceryList list is empty.")
} else {
    print("The groceryList is not empty.")
}

-配列に要素を追加(追加)する

配列のappend(_ :)メソッドを呼び出すことで、配列の最後に新しいアイテムを追加できます。

groceryList.append("Flour")

groceryListに3つのアイテムが含まれるようになりました。

または、追加の代入演算子(+ =)を使用して、1つ以上の互換性のあるアイテムの配列を追加します。

groceryList += ["Baking Powder"]

groceryListに4つのアイテムが含まれるようになりました

groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]

groceryListに7個のアイテムが含まれるようになりました


3

Swift 5による

    // An array of 'Int' elements
    let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]

    // An array of 'String' elements
    let streets = ["Albemarle", "Brandywine", "Chesapeake"]

    // Shortened forms are preferred
    var emptyDoubles: [Double] = []

    // The full type name is also allowed
    var emptyFloats: Array<Float> = Array()

2

配列のインデックスを渡して配列のコンテンツを削除するか、すべてを削除できます

    var array = [String]()
    print(array)
    array.append("MY NAME")
    print(array)
    array.removeFirst()
    print(array)
    array.append("MY NAME")
    array.removeLast()
    array.append("MY NAME1")
    array.append("MY NAME2")
    print(array)
    array.removeAll()
    print(array)

1

スウィフト5

// Create an empty array
var emptyArray = [String]()

// Add values to array by appending (Adds values as the last element)
emptyArray.append("Apple")
emptyArray.append("Oppo")

// Add values to array by inserting (Adds to a specified position of the list)
emptyArray.insert("Samsung", at: 0)

// Remove elements from an array by index number
emptyArray.remove(at: 2)

// Remove elements by specifying the element
if let removeElement = emptyArray.firstIndex(of: "Samsung") {
    emptyArray.remove(at: removeElement)
}

同様の答えが得られますが、Swiftの最新バージョン(Swift 5)では動作しません。更新された答えは次のとおりです。それが役に立てば幸い!:)


1

事前定義されたカウントでアレイを開始する:

Array(repeating: 0, count: 10)

これは、指定された数のモックオブジェクトが必要なマッピングステートメントによく使用します。例えば、

let myObjects: [MyObject] = Array(repeating: 0, count: 10).map { _ in return MyObject() }


0

互換性:Xcode 6.0.1+

宣言で配列のElementタイプを指定することにより、空の配列を作成できます。

例えば:

// Shortened forms are preferred
var emptyDoubles: [Double] = []

// The full type name is also allowed
var emptyFloats: Array<Float> = Array()

アップル開発者ページ(配列)の例:

これがこのページに出くわした人を助けることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.