53

Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

Embed Size (px)

Citation preview

Page 1: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 2: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 3: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

紙版は絶版、電⼦書籍は販売中

Page 4: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 6: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 7: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 8: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 9: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 10: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 11: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 12: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 13: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 14: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 15: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 16: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 17: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 18: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 19: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 20: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 21: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 22: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 23: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 24: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 25: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

// 型やプロトコルの名前は Upper Camel Case class SomeClass {…} protocol SomeProtocol {…}

// それ以外の“すべて”は Lower Camel Case var someVariable: SomeType func someFunction() {…} #line

Page 26: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

/* 英語が超苦手につき、以降は自己解釈を多く含みます。

間違い・違和感に気付いたら教えてください m(_ _)m */

Swift Lab で聞いてみた!

Page 27: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

// Swift 2 では Upper Camel Case enum SomeEnumeration {

case SomeCase }

let value = SomeEnumeration.SomeCase

// Swift 3 では Lower Camel Case enum SomeEnumeration {

case someCase }

let value = SomeEnumeration.someCase

Page 28: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

enum SomeEnumeration {

case someCase case someAssociatedCase(value: Int)

}

Page 29: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

// Swift 2 enum Someone { enum Sometimes { case Something } }

// どこが空間でどこがそのメンバーか、読みにくい印象 let value = Someone.Sometimes.Something

Page 30: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

// Swift 3 enum Someone { enum Sometimes { case something } }

// 空間とメンバーの違いが明瞭 let value = Someone.Sometimes.something

Page 31: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

enum SomeEnumeration { enum NestedEnumeration { case OtherCases }

case SomeCase

func someFunction() {…} var rawValue: SomeType {…} }

Page 32: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

UpperCamelCase lowerCamelCase

Page 33: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

// 列挙型 enum SomeEnumeration { case someCase }

// オプションセット struct SomeOptions : OptionSet { static let optionA = SomeOptions(rawValue: 1 << 0) }

Page 34: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 35: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

defer { // 宣言はまだなのに何故か使える handle.close() }

// defer の外だと当然のように使えない handle.close()

// このタイミングで宣言してみているときの話 var handle: Handle

Page 36: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

/* 日本語が超達者な人が担当してくださり

存分に理解を深めることができました m(_ _)m */

Swift Lab で聞いてみた!

Page 37: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

// 実質的に次のコードに変換されると予想 var handle: Handle : : : : : : : : :

handle.close()

Page 38: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 39: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 40: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

do {

defer { print("Deferred", value) } print("Initial")

let value = 10 }

Page 41: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 42: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 43: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 44: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 45: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 46: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 47: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 48: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 49: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 50: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 51: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 52: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC
Page 53: Swift Open Hours - Swift ラボで聞いてきた話 #FiNC_WWDC

Enjoy! Swift/* Thank you */