Swift programming 事始め: Hello, world!
SwiftでMacOSXアプリケーション開発にはXcode6.1から
SwiftでMacOSXアプリケーションを開発するには,Xcode6.1+OSX10.9以上(SDK10.10)が必要である.Xcode6.1はOSX10.10Yosemiteとリリースを同じくしたのだが,Yosemiteリリース前まではApple開発者登録をしないとダウンロードできなかった.Xcode6.0では,プラットフォームでiOSを選ばないと開発言語にSwiftが選べなかったのだ.
- Xcode6.1の起動とプロジェクトの開始
コマンドラインツール開発を選ぶとHelloworldプログラムのSwiftソースコードが表示される.
import Foundation println("Hello, World!")
実行はメニューProductから.実行結果はXcodeのコンソールに表示される.
-
- Product>Run
Hello, World! Program ended with exit code: 0
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由来のようで,常に書式を指定しないといけない様子.メリットデメリットがあるようだが...
Swift Programming: 演算子と式、および制御構造
Swiftの演算子はおよそCに準じる。新たに加わるものもあるし、異なるものもある。
演算子は三種類、単項演算子、二項演算子、三項演算子があり、また独自の演算子を定義できる。
この演算子オーバーロードには、{prefix|infix|postfix} operator 演算子名(引数) と、関数定義funcの代わりにoperatorを使用する。
- 前置; prefix
- 中置; infix
- 後置; postfix
同様に、二項演算子と三項演算子はそれぞれ、二引数三引数でBool値を返す関数であるといえる。
代入、比較、範囲
算術演算以外にも、代入演算、比較演算、範囲演算が用意されている
- 代入; =
- 複合代入; +=,-=,*=,/=
- 比較; ==,!=,<,>,<=,>=,===,!==
- 範囲; ...,..
- 0...5の場合,5が入る
- 0..<5の場合,5は入らない