配列の宣言, 初期化, 代入, 参照 - Swift
Swiftでの配列の書式とコードを紹介します。
書式
宣言
空で初期化する場合は下記の書式を利用します。
宣言時に初期値を代入する場合は下記の書式を利用します。
var 配列変数名:[型名] = [要素1の値, 要素2の値, 要素3の値, .... 要素nの値]
一律の初期値を設定する場合は下記の書式も利用できます。
var 配列変数名:array<型名>(count:要素数, repeatedValue:要素の値)
代入
配列の要素に代入をする場合は、代入する要素を大かっこ"[", "]"で囲み添え字で指定します。
代入は = 演算子を利用し左辺に代入される配列の要素を記述し、右辺に代入する値を記述します。
参照
配列の要素の参照は要素を大かっこ"[", "]"で囲み添え字で指定します。
記述例
Int型の配列 arr を空の配列として宣言します。
var arr:[Int] = []
Int型の配列intArr を空配列で宣言します。
var intArr = [Int]()
Int型のvalues配列を宣言し、最初の要素から順に 40, 30, 20, 10 を初期値として代入します。
var values:[Int] = [40,30,20,10]
String型のvalues配列を宣言し、最初の要素から順に "Apple", "Orange" を初期値として代入します。
var values: Array<String> = [ "Apple" , "Orange" ]
Int型のvalues配列を宣言し、配列の長さを10とし、すべての要素を0で初期化します。
var values = Array<Int>(count:10, repeatedValue:0)
プログラム
XcodeでiOSのSingle View Application を作成します。
UI
下図のUIを作成します。ButtonとTextViewを配置します。ButtonのTouchDownイベントとTextViewをコードに宣言します。
コード
//
// ViewController.swift
// ArrayDemo
//
// Created by Penta on 2016/03/01.
// Copyright c 2016年 iPentec. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textView1: UITextView!
var data : Array<String> = ["ペンギン", "らくだ", "カルガモ", "ヤンバルクイナ", "ペリカン"]
override func viewDidLoad() {
super.viewDidLoad()
textView1.text=""
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func onButtonTouchDown(sender: AnyObject) {
data[2]="トナカイ"
data[3]="しろくま"
for s in data {
textView1.text = textView1.text + s + ", "
}
}
}
解説
"data"の名称で配列を宣言します。配列の宣言時に値の代入もしています。
ボタンがタップされると onButtonTouchDown メソッドが実行されます。メソッド内で配列の[2]と[3]の要素に別の値を代入して配列の値を変更しています。その後、for ループでTextViewに配列の値を表示します。
実行結果
プロジェクトを実行します。下図の画面が表示されます。
画面上部のボタンをクリックします。TextViewに配列の値の一覧が表示されます。onButtonTouchDown メソッドでコードで配列の値を変更後の値がが目に表示されていることが確認できます。
補足
配列外の要素にアクセスするコードを記述した場合、コンパイルは通り実行もできますが、ボタンタップ時に下図の実行時エラーが発生します。
Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)~
このページのキーワード
- Swift 配列 宣言
- Swift 配列 初期化
- Swift 配列 代入
- Swift 配列 参照
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。