Swift 3 基本言語仕様

今まで Objective-C で iOSアプリを開発していましたが、Apple社の方針的にも、そろそろ Swift へ移行する時期かも。
ということで、Swift 言語仕様のメモをここに綴ります。

文字列中に変数を展開する

// シンプルなパターン
let foo = "新幹線"
let bar = "東海道\(foo)"
print(bar) // 東海道新幹線

// 書式を使うパターン
let foo = 1
let bar = String(format: "番号=%03d", foo)
print(bar) // 番号=001

現在の時刻を取得する

// ローカル日時
let date = Date()
let cal = Calendar.current
let year = cal.component(.year, from: date)
let month = cal.component(.month, from: date)
let day = cal.component(.day, from: date)
let hour = cal.component(.hour, from: date)
let min = cal.component(.minute, from: date)
let sec = cal.component(.second, from: date)
let nanosec = cal.component(.nanosecond, from: date)
let wday = cal.component(.weekday, from: date) // 1=日曜日
print(String(format: "%d/%02d/%02d %02d:%02d:%02d.%d %d", year, month, day, hour, min, sec, nanosec, wday))
// 2017/01/27 21:13:48.241433024 6

// Unix epoch time (UTCでの1970年1月1日午前零時からの秒数)
let nowsec = time(nil)
print(nowsec) // 1485518007

関数コール

//
// _ を付加するとコール時の引数名を省略できる
//
func foo(_ bar: Int){
    print(bar)
}

foo(50) // bar の記述は不要

//
// 複数の戻り値(タプル)
//
func foo() -> (apple: Int, banana: Int) {
 let apple = 10
 let banana = 20
 return (apple, banana)
}

var ret = foo()
print(ret.apple, ret.banana) // 10 20

クラス

//
// イニシャライザ(コンストラクタ)
//
class Foo {
 var apple = 0
 var banana = ""
 init(apple: Int, banana: String) {
   self.apple = apple
   self.banana = banana
 }
}

let foo = Foo(apple: 10, banana: "XYZ")
print(foo.apple, foo.banana) // 10 XYZ

 

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました