Swift programming 基礎編
変数宣言,定数宣言,代入と文字列
- 変数はvar,定数はlet,代入は=で文字列はダブルクオート("")
変数定数は,Scalaではvarとvalだったけど,見間違えやすいよね.これはSwiftさんナイス.文字列はダブルクオートのみでシングルクオートは使わない.1文字の場合でもダブルクオート.代入は:=を使ってほしかったかも.
基本データ型
- 数値型; Int,UInt,Float,Double
- 論理型; Bool/true,false
特殊な値としてnil,型宣言としては型の後に?を付けるとオプショナル型として変数にnilが代入できる.オプショナル型の変数の参照は変数名末尾に!を付加.
文字列の連結+と基本データ型の相互変換
数値型を文字列に連結する時は,明示的に文字列型にしないといけない.オブジェクト指向言語なんだからできてよさそうなきもするが.ここは残念なところ.
文字列から数値型のうち整数値には変換メソッド.toInt()があるが,浮動小数点型への変換メソッドがない.どうなのこれ.
逆に数値型から文字列への変換メソッドもない様子.ただ,プロパティとして.descriptionがある.こんな長いのいちいち見たくないぞ.
ということで,数値型から文字列の変換は,文字列中で\()を使うことになるようだ.括弧の中は変数だけでなく,式が入れられる.書式付としたい場合は,String(format:書式文字列, ...)を使う.Cで言うprintfやsprintfでのアレ.ただし,Stringが配列Array型のせいで%sが使えない.この場合も,書式文字列中に\(文字列変数)として埋め込めばいいようである.なお,バックスラッシュはOption+¥で入力する.
標準出力
- print, println,NSLog
print,prinlnはオブジェクトを適切に処理するらしく,数値型でも文字列型でも気にせず使える.一方でNSLogはSmalltalk由来のようで,常に書式を指定しないといけない様子.メリットデメリットがあるようだが...