勉強しよう、そうしよう Part.4以降

残りの章を読み始めたけど、どうやら残りは、XCodeの説明とかCocoaTouch等の説明になるっぽい

その辺りは、Objective-Cベースで理解しているので、スキップ

個人的には、Part.9のテーブルセルのカスタマイズを復習すると良いことがありそう。

うーむ、Swiftの本を買ったつもりだったんだけど、この本では、3章だけがそこに当たるっぽい。
しょうがないとは思いつつも、なんとなく、ちょっとガッカリ。

まぁ、後の章のサンプルも自分でコード書きながら、必要に応じて読んでいこう。

Swiftのコードをちょっと書いて感じたのが、Javaの時も同じだったけど、ヘッダ情報と実装情報が同じファイルにあると見通し良いよね。

勉強しよう、そうしよう Part.3.1

もう、2/5くらい読んだ感じ。

クロージャ
 概念自体は、Objective-Cとも同じ。
 func function(handler:(Type, Type, Type) -> Int){ … } として、
 function({(Type, Type, Type) -> Int in … )として呼び出す。 inの後に中カッコが不要なのが、個人的なイメージとの相違か。

構造体定義は、スキップ(おおよそクラスと同じ)

クラス

class NewClass {
var x: =
var y: =

func Function() -> {
return XXX
}
}

通常のインスタンス変数である保持プロパティの他に、算出プロパティが作れる
class Rect {
var x:Float = 0
var y:Float = 0
var width: Float = 0
var height: Float = 0

var centerX: Float {
get {
return x+width*0.5
}
set(centerX) {
x = centerX – width*0.5
}
}
}
みたいな感じ。

タイプメソッドとインスタンスメソッド
class(構造体の時は、static)をつけたメソッドは、タイプメソッド。それだけ

メソッドのオーバーライド
overrideというキーワードを使って、子クラスでオーバーライドする(オーバーライドするときは、このキーワードを使用する)

タイプメソッド Continue reading

勉強しよう、そうしよう Part.3

覚書、

変数
var <変数名>:
宣言時に、初期化したい時は、
var <変数名>: = <初期値>

初期値を設定していない変数を使用して計算させようとするとエラーになった。すごいね。
ちなみに、は、つけなくても良いらしい。その時は、設定された値から、推論する。

定数
let <変数名> = <値>
この時は、変数タイプを指定しても良い。ただし、定数なので、値を指定しないとエラー

変数タイプの種類や、演算子は、Objective-Cと同じ。
文字列も大差ない。

配列
配列に入るタイプを制限できる。
var <変数名>:[<要素の型>]
or
var <変数名> = [<要素>, <要素>, <要素>, ….]

空配列
var emptyArray = [String]()
とすることで、空の配列も作れるらしい。
countで要素数を数えられたりするのは、これまでどおり。

辞書
なんと、キーにStringだけではなく、なんでも使うことができる!
var dic = [100: “Hundred”, 1000: “Thousand”, 1000000: “Million”]
とか。(この場合は、 Int -> Stringの辞書)
上記は、型が推論されて辞書が定義されるけど、自分で定義するときは、
var dict0: = Dictionary()
となる。(この場合は、空の辞書が作られている)

制御構文は、おおよそ想像どおりだけど、範囲演算子が珍しい
… は、a…b みたいに使用されて、a(を含み)からb(を含む)まで

関数定義
func<関数名>(<引数名>:<引数型>) -> <返り値型> {
処理・・・・
}

ちなみに、なんと関数が複数の返り値を持つことができる
func test(name:String) -> (kun: String, san: String, chan: String) という関数があると

var testResult = test("なまえ")
testResult.kun
testResult.san
testResult.chan

という感じで、返り値を使うことができる。

まだ3章の途中だけど、クロージャは、また今度!

勉強しよう、そうしよう Part.2

第1章は、フレームワークの話だったから、スキップ
第2章は、Playgroundなるもので、遊んでみようと
Pythonみたいなスクリプト言語なら、Playgroundいらないのにね。

var sum=0
for i in 1...100 {
  sum += i
}
sum

みたいなコードで、グラフ表示されて、ビックリ。よくできてるね。
Continue reading