他言語との対比†
他言語にあるもので同じもの†
static | static var totalCount : Int,computedやメソッドの場合はclassをつける |
internal/private/public | internal=publicでswiftの場合はデフォルトinternal。publicはFrameworkdで使うもので通常は使わない |
abstract | optional |
他言語にあるもので違うもの†
Optional | ?で宣言して、!でget。Optionalチェーンは?でない場合はnil |
コンストラクタ | init(),deinit() |
property | 読み取り専用のlet,通常のvar,さらに計算結果のみを返すcomputedプロパティはgetter,setterに計算メソッドを持たせるイメージ |
多言語にないもの†
protocol | 約束事、interfaceのようなもの |
property observer | willSet,didSet,initの3つのメソッドを追加できる。ここまで来るとクラスの小さいバージョンのようだ |
extension | 簡単にクラスを拡張できる |
protocol | 継承よりもこちらのほうが良いのでは?特に親クラスが肥大化するようなケースで |
基本文法†
let hoge = "変えられない値"
var hoge = "変えられる値"
var hoge:String //定義だけも可能
文字列同士ならJavaと一緒。文字列と数値はそのまま連結できない。変数を表す()で囲んで使うか。toStringを使う
let score = 123
let result = "\(score)点"
let scoreString = toString(score)
オプショナル†
var name1: String!
var name2: String?
使う時は!がget
print(name2!)
宣言時に!だと、使用時に!不要だけどnilだと落ちるので注意
print name1
制御文†
ほぼJavaと一緒。Case文は無用なbreakが不要なのでJavaよりは簡単だろう。