徒然笹

つれづれなるままに、酒を呑みて、心にうつりゆく会社の愚痴や趣味の話を、そこはかとなく書きつくれば、何か面白くなるかなと思うてみたり。

iPhoneアプリに手をだす

8月に買って、一度も手をつけて来なかった「絶対に挫折しない iPhoneアプリ開発「長超入門」」を読み出し、今日付けで iPhone Developerとしての第一歩を歩み始めることにした!

 

プログラミング言語 Swiftを初めて触るが、型の宣言がJava,Cと違ってて困惑

 

同時に、何年前に買ったか忘れた「C言語 ポインタ 完全制覇」も空き時間に読み出す

 

このポインタ本には、「Cは型の宣言を文頭に持ってくるのは文法的におかしい」という記述があったが、それに慣れてるのでSwiftみたいな

var hoge : Int = 10

型を後から書くのは少し面倒

 

配列の宣言もJava

int block = new int[3][4];

の方がいいかな

 

あ、でもこうして書いてみるとSwiftの方が直感的で分かりやすいな

だいたいJavaの配列宣言はインスタンスを別に作らなきゃいけないから面倒だったんだよな

初期化忘れると、NullPointerで怒られたし、自分で作ったクラスの場合、初期化が面倒だよな

Position[] p = new Position[4]; //配列の宣言

for(int i =0; i < 4; i++) {

    p[ i ] = new Position(); //配列のインスタンスを生成

}

その分、Swiftは宣言とインスタンスを同時にやるわけだから、いつでも実体って訳か

で、実体が無いものに関してはオプショナル型と"nil"って訳ね

 

そして、動的に箱を作る時に出た弊害をオプショナル型で解決って訳か

 

...いや、設計思考的におかしくないか、これ

そもそも、nullになるだろうという設計思考がおかしくないか

プログラムを書く上で例外が発生するのは仕方ないが、それに対してユーザーに

「ごめんなさい!OSに見つかっちまった!あの制約(permission)があると、このプログラムは立ち行かねぇんだ...」と通知するのが普通じゃないのか?

なんでもnullで返せるのがおかしいというべきか、そもそもアプリの外側にアクションを起こさないとnullは返ってこないはずなので、パッケージ内で"nullが返ってくる可能性のある関数"が、存在する時点で設計的におかしいのではないか?

 

ある関数の戻り値の期待値が「100 ~ 110」の時に1でも2でも返ってきたら、そりゃ例外でしょうよ、と

Null もしくは”0”が返ってきた時に「うひゃー」となるのはおかしいでしょうよ、と

 

まぁ、まだ勉強の初めだから、本質を全くついてない早とちりな考えかも知れないけど、、、

新しく触る言語は何かしらの発見なり、自分の知見なりを考えるいい経験になって楽しいなー

Swiftでコーディングし始めると、次は「Javaはダメ」とか言い出したりして(笑)