Secret Swift tour
2018/3/1
try! Swift Conference
Yuka Ezura
Slide 2
Slide 2 text
var myVariable = 42
myVariable = 50
Slide 3
Slide 3 text
let r = ( )
Void
var myVariable = 42
myVariable = 50
Slide 4
Slide 4 text
obj?.myVariable = 50
Slide 5
Slide 5 text
(obj?.myVariable = 50)
Optional
Slide 6
Slide 6 text
(obj?.myVariable = 50)
.map { /* do something */ }
Slide 7
Slide 7 text
! error: Value of optional type 'Int?' not unwrapped;
obj?.myVariable + 50
Slide 8
Slide 8 text
infix operator ⭐
func ⭐ (left: Int, right: Int) -> Int {
return left + right
}aaaaaaa
Slide 9
Slide 9 text
! error: Value of optional type 'Int?' not unwrapped;
obj?.myVariable ⭐ 5
infix operator ⭐
func ⭐ (left: Int, right: Int) -> Int {
return left + right
}aaaaaaa
Slide 10
Slide 10 text
infix operator ⭐
func ⭐ (left: Int, right: Int) -> Int {
return left + right
}aaaaaaa
Slide 11
Slide 11 text
precedencegroup FoldedIntoOptionalChaining {
assignment: true
}
:FoldedIntoOptionalChaining
infix operator ⭐
func ⭐ (left: Int, right: Int) -> Int {
return left + right
}aaaaaaa
enum Rank: Int {
case ace = 1
case two, three, four, five, six,
seven, eight, nine, ten
case jack, queen, king
}
let _: (Int) -> Rank? = Rank.init
init?(rawValue: Int)
Slide 27
Slide 27 text
let _: (Int, Int) -> (Int) = (+)
let _: (inout Int, Int) -> () = (+=)
Slide 28
Slide 28 text
enum Page {
case settings
case externalSite(URL)
let _: (URL) -> Page = Page.externalSite
}
Slide 29
Slide 29 text
static var settings: Page {
return Page.settings
}
static func externalSite(_ url: URL) -> Page {
return Page.externalSite(url)
}
let _: (URL) -> Page = Page.externalSite
enum Page {
case settings
case externalSite(URL)
}