Swift programming 基礎編

変数宣言,定数宣言,代入と文字列

  • 変数はvar,定数はlet,代入は=で文字列はダブルクオート("")

 変数定数は,Scalaではvarとvalだったけど,見間違えやすいよね.これはSwiftさんナイス.文字列はダブルクオートのみでシングルクオートは使わない.1文字の場合でもダブルクオート.代入は:=を使ってほしかったかも.

基本データ型

  1. 数値型; Int,UInt,Float,Double
  2. 論理型; Bool/true,false

 特殊な値としてnil,型宣言としては型の後に?を付けるとオプショナル型として変数にnilが代入できる.オプショナル型の変数の参照は変数名末尾に!を付加.

従前のプログラミング言語として違うのは,数値型,論理型にもnil値が代入できること.この表現力の向上は地味に嬉しい.

文字列の連結+と基本データ型の相互変換

 数値型を文字列に連結する時は,明示的に文字列型にしないといけないオブジェクト指向言語なんだからできてよさそうなきもするが.ここは残念なところ.

文字列から数値型のうち整数値には変換メソッド.toInt()があるが,浮動小数点型への変換メソッドがない.どうなのこれ.

逆に数値型から文字列への変換メソッドもない様子.ただ,プロパティとして.descriptionがあるこんな長いのいちいち見たくないぞ

ということで,数値型から文字列の変換は,文字列中で\()を使うことになるようだ.括弧の中は変数だけでなく,式が入れられる.書式付としたい場合は,String(format:書式文字列, ...)を使う.Cで言うprintfやsprintfでのアレ.ただし,Stringが配列Array型のせいで%sが使えない.この場合も,書式文字列中に\(文字列変数)として埋め込めばいいようである.なお,バックスラッシュはOption+¥で入力する.

標準出力

  • print, println,NSLog

print,prinlnはオブジェクトを適切に処理するらしく,数値型でも文字列型でも気にせず使える.一方でNSLogはSmalltalk由来のようで,常に書式を指定しないといけない様子.メリットデメリットがあるようだが...