Simple Values

Xcode 6.0 Beta

Swift学習中。

The Swift Programming Language.epubのA Swift Tourの導入からSimple Valuesの項まで読んだ。

Hello Worldプログラムは以下のように1行で記述できる。

println("Hello, world")

入出力関数や文字列操作などのAPIを別途importする必要はない。グローバルスペースに書かれたコードはプログラムのエントリポイントとして扱われる。main関数は必要ない。


定数を作成するにはletを、変数を作成するにはvarを使う。

var myVariable = 42
myVariable = 50
let myConstant = 42

変数や定数に割り当てる値のデータ型と、その変数のデータ型は同じでなければならない。状況によってはコンパイラによる型推論が働くので、その場合は型を明示する必要はない。型を明示するには、コロンに続けてデータ型を指定する。上記の例では、初期化に使用している値が整数なので、コンパイラは変数のデータ型を整数型(Int)と判断する。

let implicitInteger = 70.0
let implicitDouble = 70.0
let expplicitDouble: Double = 70

Swiftでは、値が暗黙的に他のデータ型に変換されることはない。データ型を変換するには、必要な型の変数をインスタンス化する。

let label = "The width is "
let width = 94
let widthLabel = label + String(width)

上記例において、もしもString(width)とせずに、単純に label + width とした場合、コンパイルエラーになる。

let widthLabel = label + width    // Error
// Could not find an overload for '+' that accepts the supplied arguments

文字列に変数の値を埋め込むには、もっとシンプルな方法がある。それは、文字列リテラル内で、「バックスラッシュ(変数)」という書式を使うものである。

let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let orangeSummary = "I have \(apples + oranges) pieces of fruite."

(\の部分はバックスラッシュ)

配列やディクショナリを初期化するには、[] を使う。ディクショナリの場合は、キーと値をコロンで区切って、要素をカンマで区切る。

var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"

var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"

空の配列やディクショナリを作るには以下のようにする。

let emptyArray = String[]()
let emptyDictionary = Dictionary<String, Float>()

コンパイラ型推論できる状況であれば、
空の配列は []
空のディクショナリは [:]
として、変数に代入したり、関数の引数に渡したりできる。

shoppingList = []	// Went shopping and bought everything.
func f(arg: Dictionary<String, Float>) {/* ... */}

// ...

f([:])	// 空のディクショナリを渡している

私の場合、英語を読むのがそれほど得意ではないので時間がかかってしまうが、内容としては今のところはとても簡単。

今日はここまで。