experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list. http://nondot.org/sabre/
User { var input = 0 } let a = User() let b = a a.input = 1 // input: 2 b.input = 2 // input: 2 // struct͠(copyΛऔ͍ͬͯΔ) struct User2 { var input = 0 } var c = User2() var d = c c.input = 1 // input: 1 d.input = 2 // input: 2
= Array(1...10) var res = 0 for x in ary { if x % 2 == 0 { res += x * 2 } } res // 60 // case-2 Array(1...10) .filter({ x in x % 2 == 0 }) .map({ x in x * 2 }) .reduce(0, combine: { acc, x in acc + x }) // 60
{ case 200...299: "success" default: "failure" } // ex2 enum StringOptional { case None case Some(String) } let opt = StringOptional.Some("something") // Some("something") switch opt { case let .Some(val): val // something case .None: "nothing" } • ύλʔϯϚονͱɺ͋ΔΛͦͷܕͷ࣋ͪ͏ΔߏʹΑͬͯ෦త͋Δ ͍શମతʹ۩ମԽ͠ɺแ͢ΔͷղΛͨ͠ΓɺҰக۩߹Λ݅ ࣜͱͯ͠ར༻͢Δૢ࡞ͷ͜ͱΛࢦ͢
name2: String? = findById(2)?.pet?.name // -> Some("jiro") // if let unwrapVal = Optional.Some(val) {} if let unwrapName1 = name1, let unwrapName2 = name2 { unwrapName1 + " and "+ unwrapName2 // -> taro and jiro } • if let ʹΑΔpattern matchingͰSomeΛऔΓग़͢