The Swift Proggraming Languageに目を通しました。

※「読みました」とは敢えて言わない照れ

 

この時点で印象に残った点をメモ。

 

定数はlet文で宣言する

 BASICでは変数に右辺を代入する命令がLETでした。定数というとconstが思い浮かびます。#defineと違って、”書き換わるはずのない変数”のようなニュアンスです。varと同じ3文字なので、積極的に使い分けようという気分にさせてくれますウインク

 

文末のセミコロンは要らない

 C入門以来ずっとセミコロンが有ったので、しばらくは慣れないかも。javascriptも要らないんでしたっけ…私は無いと気持ち悪いので付けていましたけども。Swiftは”付けたければ付けてもいい”ようですが、郷に従うこととします。

 

型指定はコロン、しかも変数名のうしろ

 私はPerlで怠けていた期間が長いので、データ型に対してとてもルーズになっています。Swiftも多少は自動的に解釈されるようですが、キャストまではしてくれないので、C時代の初心を取り戻さねばなりませんあせる

 

nilは、Objective-Cのnilと違う

 Objective-Cでは”どのオブジェクトも指し示していないポインタ”というような意味でしたが、Swiftでは”値でない状態”といった意味合いで、Perlで言うundefの方に近いようです。

 

optional

 値でない状態(nil)の扱いと関係しているようですがよくわかりません。扱えないのがデフォルトで、扱えるのがオプショナル(任意)なのには意味があるのでしょうね。

 

クロージャ

 聞いたことはあるけど中身までは知らない、という言葉です。うーん…関数から関数へ処理が移るときに、ポインタとかを使わなくてもスマートに書けるよという事でしょうか…。変数のスコープがミソのようです。

 

generics

 ある関数をどのデータ型にも使えるようにする、一般化する、といったところでしょうか。これもゆるゆるのPerlからすると、大変ですねぇ…。

 

tuple

 Perlではサブルーチンから複数の値を返したい時に、名無しのリストをそのまま返してしまいますが、それとそっくりに見えます。localtime関数の戻り値とか。

 

subscript

 クラスなどのパラメータに対して、シンプルにアクセスする仕組み?関数の一種のようです。

 

その他、些細なこと

変数名はUnicode文字であれば何でも使える

 漢字も絵文字も使えるようですが、多分使わないので、豆知識ですね。

データ型に別名を付けられる

 typealias文を使う。

if文の条件式に()がない

 括弧の省略はPerlの方がひどいので照れどうってことありません。

switch文のbreakが要らない

 よいと思います!

 

 

今を登山に例えると、これから登る山の写真を見た、ってところでしょうか。

はぁ・・・チーン

次は書籍のほうに取り組みます。