Swift学習④(codebelle)配列

【Swift を学ぶ目的】

Ios アプリを作成したい(家計簿アプリ、ゲーム)

・比較的簡単らしく、Xcodeがあればすぐに開発をはじめられるのでどんどんやりたい

 ドットインストールにもXcode の使い方(無償)とSwift 入門(有料)があったため 併用していきたい。

 

 環境:xcode 、paiza.io(ブラウザエディタ)

 教材:codebelle

【本ブログについて】

・codebelleの講義を参考に自分なりにアレンジしたコードを載せ理解を深めていく。

・又、当ブログは非商用でありcodebelle公式のブログではない。

・《ハック》(改造)は教材での学習のみでは納得できなかった部分について、コードを追加・削除してみたり、オリジナルのコードを作成し試行錯誤してみた箇所。

・《観察》は《ハック》についての考察や、教材もしくはググって参考にした事について、自分なりに理解を深める箇所。

 

◆ Array[配列] コレクション 

ひとつの変数に複数の値を入れられる型の総称=コレクション

コレクションには2 種類ーArray 型[配列]

           ーDictionary 型[辞書]

配列とはーArray 型

    ー複数の値を扱える

    ー型は1 種類のみ

    ー複数の値を整理整頓

    ー配列に入っているデータを要素と呼ぶ

 

【記述方法1】

vat 配列名 = [要素1,要素2,要素3,,,] //カンマ区切り

要素の型を宣言するとしたら...

 

【記述方法2】

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

var price:[Int] = [90,85,200]

まだ具体的にデータを入れたくない時は...

 

【記述方法3】

var AAA:[Int] = []

 

《ハック》記述方法2 を出力してみた

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

var price:[Int] = [90,85,200]

print(beefjaga,price)

出力↓

["タマネギ", "じゃがいも", "牛"] [90, 85, 200]

 

《ハック》個別に取り出してみた

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

var price:[Int] = [90,85,200]

print(beefjaga[0],price[2])

出力↓

タマネギ 200

 

《観察》

やはりインデックス番号によって振り分けられていた。

 

配列は、要素だけでなく範囲でも取り出すことができるらしい。

【記述方法4】

配列名[開始インデックス番号...終了インデックス番号]  ///ドット3 つ

 

【例1】

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

print(beefjaga[0...1])

出力↓

["タマネギ", "じゃがいも"]

 

◆ 配列の要素count

count を用いる。count というプロパティが配列の要素の数を値で返してくれる。

プロパティとは:型に備わっている値。属性ともいう

 

【記述方法5】

配列名.count //ドット

 

【例2】

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

print(beefjaga.count)

出力↓

3

◆ 配列の要素を変更

【記述方法6】

配列名[インデックス番号] = [変更したい内容]

又、変更する型は、変更前と同じ型じゃないとダメ。

 

【例3】例1 の牛を豚に変更したい

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

beefjaga[2] = "豚"

print(beefjaga[2])

出力↓

 

◆ おケツに要素を追加

【記述方法7】

配列名.append(追加したい要素)

 

【例4】にんじんを追加したい

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

beefjaga.append("にんじん")

print(beefjaga)

出力↓

["タマネギ", "じゃがいも", "牛", "にんじん"] //の場合の引数は"にんじん"//

 

◆ 途中に要素を追加

【記述方法8】

配列名.insert(挿入したい要素,at:挿入位置のインデックス番号)

//挿入位置のインデッス番号とは、前後のインデックス番号の内、後を指す//

 

【例5】タマネギのあとにチーズバーガーをいれたい

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

beefjaga.insert("チーズバーガー",at:1)

print(beefjaga)

出力↓

["タマネギ", "チーズバーガー", "じゃがいも", "牛"]

 

◆ 要素を消す

【記述方法9】

配列名.remove(at:削除したい要素のインデックス番号) //リムーブアット

【例6】牛を消す

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

beefjaga.remove(at:2)

print(beefjaga)

出力↓

["タマネギ","じゃがいも"]

 

◆ ケツの要素を削除

【記述方法10】

配列名.removeLast() //リムーブラスト

 

【例7】

var beefjaga:[String] = ["タマネギ","じゃがいも","牛"]

beefjaga.removeLast()

print(beefjaga)

出力↓

["タマネギ", "じゃがいも"]

 

 

そのため要素の最後を削除したいときはremove(at)よりremoveLast を使った方が良い。

理由は、要素を追加していると、その時点で要素の数がいくつあるかパッ見わからないから(count すれば分かるが、めんどい)

 

今回は暗記が多かった。removeLastとか、appendとか、関数と記述方法をおぼえなければ