他言語との対比

他言語にあるもので同じもの

staticstatic var totalCount : Int,computedやメソッドの場合はclassをつける
internal/private/publicinternal=publicでswiftの場合はデフォルトinternal。publicはFrameworkdで使うもので通常は使わない
abstractoptional

他言語にあるもので違うもの

Optional?で宣言して、!でget。Optionalチェーンは?でない場合はnil
コンストラクタinit(),deinit()
property読み取り専用のlet,通常のvar,さらに計算結果のみを返すcomputedプロパティはgetter,setterに計算メソッドを持たせるイメージ

多言語にないもの

protocol約束事、interfaceのようなもの
property observerwillSet,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よりは簡単だろう。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS