é·ãéç¥ã£ãŠããããã«ãAppleã¯Swift 3ãXcode 8ã«çµ±åããŸãããããã¯ãmacOSãšLinuxã®äž¡æ¹ã§åäœãããªãŒãã³ãœãŒã¹èšèªã®æåã®ããŒãžã§ã³ã§ãã æšå¹Ž12æä»¥éãSwift Evolutionã§èšèªéçºããã»ã¹ãå®è¡ããIBMãµã³ãããã¯ã¹ã§ããã詊ããŠã¿ãå Žåãããããå€ãã®å€æŽãããã«çŸããŠããããšã«æ°ä»ããã§ãããã Xcode 8ã§æ¢åã®ãããžã§ã¯ããã³ã³ãã€ã«ãããšããééããªãã³ãŒããé©ãããšã§ãããã ããããããã¯ä¿®æ£å¯èœã§ãã æ°ããèšèªããŒãžã§ã³ã§ã®ããã€ãã®å€æŽã«ã€ããŠç¥ããŸãããã

æ°ããããŒãžã§ã³ã®å€æŽç¹ã¯ãäž»ã«2ã€ã®ã«ããŽãªã«åé¡ã§ããŸãã
- Swift 2.2ã§æ¢ã«å»æ¢ãããŠãããªã¢ãŒãæ©èœ
- èšèªã®æ¹å
XcodeããŒãžã§ã³7.3ã§èŠåãåãåã£ããšãã«çè§£ããããããããããããã®æ©èœãæºãããŠããããããªã¢ãŒãæ©èœã®ã«ããŽãªããå§ããŸãããã
++ããã³-æŒç®å
Cèšèªã®éºç£ã®å¢åããã³æžåæŒç®åãšãã®æ©èœã¯åçŽã§ã-ç¹å®ã®å€æ°ã«1ãå ç®ãŸãã¯æžç®ããŸãã
var i = 0 i++ ++i i-- --i
ãã ããã©ã¡ããéžæããããæ±ºå®ããããšã«ãªããšãäºæ
ã¯ããè€éã«ãªããŸãã ãããã¯ããããããã¬ãã£ãã¯ã¹ãšãã¹ããã£ãã¯ã¹ã®2ã€ã®å¯èœãªãªãã·ã§ã³ã§è¡šãããšãã§ããŸãããããã¯ãã¹ãŠããšã³ãžã³ã®ãããã§æ©èœããæŒç®åã®ãªããŒãã«ãã䜿çšãŸãã¯æåŠã§ããå€ãè¿ããŸãã
ããã¯åå¿è
ã«ã¯åé€ãããŠããã®ã§ååã§ã
-代ããã«ä»£å
¥æŒç®åãšå ç®
+ =ããã³æžç®
-=ã䜿çšããŠãã ããïŒ
var i = 0 i += 1 i -= 1
ãã¡ãããå ç®ïŒ+ïŒæŒç®åãšæžç®ïŒ-ïŒæŒç®åã䜿çšã§ããã»ãã代å
¥æŒç®åãäžç·ã«äœ¿çšã§ãããããã³ãŒããèšè¿°ãããšãã®æéãç¯çŽã§ããŸããã
i = i + 1 i = i - 1
æ
£ããïŒ ãã®å€æŽã®çç±ã«ã€ããŠè©³ããç¥ãããå Žåã¯ã Chris Latnerã®ææ¡ãåç
§ããŠãã ãã ãã«ãŒããèšè¿°ããããã®Cèšèªã¹ã¿ã€ã«ã¯æŽå²
ã€ã³ã¯ãªã¡ã³ãæŒç®åãšãã¯ãªã¡ã³ãæŒç®åã䜿çšããæãäžè¬çãªäŸã¯ãã«ãŒããèšè¿°ããããã®Cèšèªã¹ã¿ã€ã«ã§ãã æŒç®åãåé€ãããšããããã«é¢é£ãããã¹ãŠã®ãã®ãåé€ãããŸããããã¯ãåŒãæŒç®åã䜿çšããŠç¯å²ãæå®ããå Žåãšã¯ç°ãªããããããã¹ãŠãè¡ãããšã¯ã§ããªãããã§ãã
ããšãã°ãããçšåºŠã®ç¥èãããå Žåã¯ãããããforã«ãŒãã䜿çšããŠ1ãã10ãŸã§ã®æ°åã衚瀺ããŸãã
for (i = 1; i <= 10; i++) { print(i) }
Swift 3ã§ã¯ãããã¯äžå¯èœã§ãã ããã¯åœŒã®Swift 3ã®ãããã¿ã€ãã§ã-åäœäžã®éç¯å²æŒç®åïŒ...ïŒãèŠãŠã¿ãŸãããïŒ
for i in 1...10 { print(i) }
ãããã¯ãéããåŒãšçç¥ãããåŒæ°ã§for-eachã«ãŒãã䜿çšããããšãã§ã
ãŸã ã詳现ã«ã€ããŠã¯ã
ãã¡ããåç
§ããŠ
ãã ãã ã
(1...10).forEach { print($0) }
æ
£ããïŒ ãã®å€æŽã®åæ©ã«ã€ããŠè©³ããç¥ãããå Žåã¯ã Erica Sadunã®ææ¡ãåç
§ããŠãã ãã ã颿°ãã©ã¡ãŒã¿ãŒãã倿°ãåé€ããŸãã
颿°ãã©ã¡ãŒã¿ãŒã¯ã颿°å
ã§å€æŽããå¿
èŠããªããããéåžžå®æ°ãšããŠå®çŸ©ãããŸãã ãã ãã倿°ãšããŠå®£èšãããšäŸ¿å©ãªå ŽåããããŸãã Swift 2ã§ã¯ã
varããŒã¯ãŒãã䜿çšããŠé¢æ°ãã©ã¡ãŒã¿ãŒã倿°ãšããŠããŒã¯ã§ããŸãã ãã©ã¡ãŒã¿ãŒã
varãšããŠæå®ãããšãå€ã®ããŒã«ã«ã³ããŒãäœæãããããã颿°ã®æ¬äœã§å€ã倿Žã§ããŸãã
äŸãšããŠã次ã®é¢æ°ã¯ãäžãããã2ã€ã®æ°å€ã®æå€§å
¬çŽæ°ã決å®ããŸãã髿 ¡ã§æ°åŠã®ã³ãŒã¹ãéããå Žåã¯ãããã§è©³çްããèªã¿ãã ããã
func gcd(var a: Int, var b: Int) -> Int { if (a == b) { return a } repeat { if (a > b) { a = a - b } else { b = b - a } } while (a != b) return a }
ã¢ã«ãŽãªãºã ã¯åçŽã§ããäž¡æ¹ã®æ°å€ãæ¢ã«çããå Žåãã©ã¡ãããè¿ãããŸãã ãã以å€ã®å Žåã¯ãããããæ¯èŒãã倧ããæ¹ããå°ããæ¹ãæžç®ããçµæãçãããªããŸã§å€§ããæ¹ã«å²ãåœãŠãŠããããããè¿ããŸãã ã芧ã®ãšãããaãšbã倿°ãšããŠããŒã¯ããããšã«ããã颿°å
ã®å€ã倿Žã§ããŸãã
Swift 3éçºè
ã¯é¢æ°ãã©ã¡ãŒã¿ãŒã倿°ãšããŠèšå®ã§ããªããªããŸãããSwiftéçºè
ã¯
varãš
inoutãæ··åããå¯èœæ§ãããããã§ãã ãããã£ãŠãSwiftã®ææ°ããŒãžã§ã³ã§ã¯ã颿°ãã©ã¡ãŒã¿ãŒãã
varãåé€ãããŸãã
ãããã£ãŠãSwift 3ã§åã
gcd颿°ãäœæããã«ã¯ãç°ãªãã¢ãããŒããå¿
èŠã§ãã ããŒã«ã«å€æ°ã®é¢æ°ãã©ã¡ãŒã¿ãŒå€ãä¿åããå¿
èŠããããŸãã
func gcd(a: Int, b: Int) -> Int { if (a == b) { return a } var c = a var d = b repeat { if (c > d) { c = c - d } else { d = d - c } } while (c != d) return c }
ãã®æ±ºå®ã®çç±ã«ã€ããŠè©³ããç¥ãããå Žåã¯
ãå
ã®æãèªãããšãã§ã
ãŸã ã
颿°ãã©ã¡ãŒã¿ãŒã®ã·ãŒã±ã³ã·ã£ã«ã©ãã«ã®åäœ
颿°ãã©ã¡ãŒã¿ãŒãªã¹ãã¯ã¿ãã«ã§ãããã®ãããã¿ãã«æ§é ã颿°ãããã¿ã€ããšäžèŽããéãããããã䜿çšããŠé¢æ°ãåŒã³åºãããšãã§ããŸãã äŸãšããŠgcdïŒïŒé¢æ°ãåãäžããŸãã æ¬¡ã®ããã«é»è©±ããããããšãã§ããŸãã
gcd(8, b: 12)
ãŸãã¯ã次ã®ããã«é¢æ°ãåŒã³åºãããšãã§ããŸãã
let number = (8, b: 12) gcd(number)
Swift 2ã§ãããããã«ãæåã®ãã©ã¡ãŒã¿ãŒã®ã©ãã«ãæå®ããå¿
èŠã¯ãããŸããã ãã ãã颿°ãåŒã³åºããšãã¯ã2çªç®ïŒããã³ãã®ä»ã®ãã©ã¡ãŒã¿ãŒïŒã®ã©ãã«ãæå®ããå¿
èŠããããŸãã
ãã®æ§æã¯åå¿è
ã®éçºè
ã«ãšã£ãŠãããã«ãããããã©ãã«ã®åäœãæšæºåããããã«èšèšãããŠããŸãã Swiftã®æ°ããããŒãžã§ã³ã§ã¯ã次ã®ããã«é¢æ°ãåŒã³åºãããšãã§ããŸãã
gcd(a: 8, b: 12)
æåã®ãã©ã¡ãŒã¿ãŒã®ã©ãã«ãæç€ºçã«æå®ããå¿
èŠããããŸãã ããããªããšãXcode 8ã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŸãã
ãã®å€æŽã«å¯Ÿããæåã®åå¿ã¯ããOMGïŒ æ¢åã®ã³ãŒãã«å€ãã®å€æŽãå ããå¿
èŠããããŸããã ããªãã¯æ£ããã ãããã¯ããããã®å€æŽã§ãã ãããã£ãŠãAppleã¯ã颿°åŒã³åºããã©ã¡ãŒã¿ãŒã®æåã®ã©ãã«ãæå¶ããæ¹æ³ãæäŸããŠããŸãã 以äžã«ç€ºãããã«ãæåã®ãã©ã¡ãŒã¿ãŒã«äžç·ã远å ã§ããŸãã
func gcd(_ a: Int, b: Int) -> Int { ... }
ããã«ãããæåã®ã©ãã«ãæå®ããã«ãå€ãã¡ãœããã䜿çšããŠé¢æ°ãåŒã³åºãããšãã§ããŸãã ããã«ãããSwift 2ããSwift 3ãžã®ã³ãŒãã®ç§»è¡ãã¯ããã«ç°¡åã«ãªããŸãã
ãã®å€æŽã®åæ©ãšæå³ã«ã€ããŠã¯ã
ãã®æã
èªãããšãã§ã
ãŸã ã
æååãšããŠã®ã»ã¬ã¯ã¿ãŒã¯äœ¿çšãããªããªããŸãã
ãã¿ã³ãã¯ãªãã¯ããŠã¢ã¯ã·ã§ã³ãå®è¡ããŠã¿ãŸããããã¹ããŒãªãŒããŒãã§ã¯ãªãããã¬ã€ã°ã©ãŠã³ãã®ã¿ã䜿çšããŸãã
ããªãå€ãã®ã€ãã³ããããã§çºçããã®ã§ãããããæ®µéã«åããŸãããã
- UIKitããã³XCPlaygroundãã¬ãŒã ã¯ãŒã¯ãã€ã³ããŒãããŸã-ãã¿ã³ãäœæãããã¬ã€ã°ã©ãŠã³ããšãã£ã¿ãŒã§è¡šç€ºããå¿
èŠããããŸãã
- ãŠãŒã¶ãŒããã¿ã³ãã¯ãªãã¯ããŠã¿ãŒã²ãããäœæãããšãã«å®è¡ãããã¯ãªãã¯æ¹æ³ã決å®ããŸããïŒ ã»ã¬ã¯ã¿ã¯Objective-Cã¡ãœããã§ã®ã¿æ©èœããããããã¿ã³ã®è«çãªããžã§ã¯ãã¯ãã®åºæ¬ã¯ã©ã¹NSObjectã§ãã
- ãã¿ã³ã®å®£èšãšããããã£ã®èšå®ã
- ç¹å®ã®ãµã€ãºã®ãã¥ãŒãäœæãããã¥ãŒã«ãã¿ã³ã远å ããŠããã¬ã€ã°ã©ãŠã³ããšãã£ã¿ãŒã®ã¢ã·ã¹ã¿ã³ãã«è¡šç€ºããŸãã
ãã€ã©ã€ããããã³ãŒããèŠãŠãã ããã ãã¿ã³ã»ã¬ã¯ã¿ãŒã¯æååã§ãã ééã£ãŠå
¥åãããšãã³ãŒãã¯ã³ã³ãã€ã«ãããŸããã察å¿ããã¡ãœãããèŠã€ãããªãå¯èœæ§ããããããå®è¡äžã«å€±æããŸãã
æœåšçãªã³ã³ãã€ã«æã®åé¡ãä¿®æ£ããããã«ãSwift 3ã¯ã»ã¬ã¯ã¿ãŒæååã#selectorïŒïŒããŒã¯ãŒãã«çœ®ãæããŸããã ããã«ãããã¡ãœããåãæ£ããæå®ããªããšãã³ã³ãã€ã©ãŒãåé¡ãæ©æã«æ€åºã§ããŸãã
button.addTarget(responder, action: #selector(Responder.tap), for: .touchUpInside)
ãã®å€æŽã®çç±ãçè§£ããã«ã¯ã
Doug Gregorã®ææ¡ãèªãã§ãã ããã
ããã¯ãªã¢ãŒãæ©èœçšã§ãã æ¬¡ã«ãèšèªã®è¿ä»£åã®äž»èŠãªãã€ã³ãã«ç§»ããŸãããã
æååãšããŠã®ããŒãã¹
ãã®é¢æ°ã¯åã®é¢æ°ãšäŒŒãŠããŸããã
ããŒå€ã³ãŒãã£ã³ã° ïŒKVCïŒããã³ããŒå€ç£èŠïŒKVOïŒã«é¢é£ããŠããŸãã
class Person: NSObject { var name: String = "" init(name: String) { self.name = name } } let me = Person(name: "Cosmin") me.valueForKeyPath("name")
ãšã³ã³ãŒãã®Key-ValueãšäžèŽãã
Personã¯ã©ã¹ãäœæããã€ãã·ã£
ã©ã€ã¶ãŒã«ãã£ãŠæå®ãããã¯ã©ã¹ã§èªåã®IDãäœæãã
KVCã䜿çšããŠååãèšå®ããŸãã
ç¹°ãè¿ããŸãããééã£ãæäœããããšããã¹ãŠãççºããŸãïŒ
幞ããªããšã«ãããã¯Swift 3ã§ã¯çºçããªããªããŸãããããŒãã¹ã¯#keyPathïŒïŒåŒã«çœ®ãæããããŸããã
class Person: NSObject { var name: String = "" init(name: String) { self.name = name } } let me = Person(name: "Cosmin") me.value(forKeyPath: #keyPath(Person.name))
ãã®å€æŽã®çç±ãçè§£ããã«ã¯
ãDavid Heartsã®ææ¡ãèªãã§ãã ããã
NSããŒã¹ã¿ã€ããã¬ãã£ãã¯ã¹ãåé€
åºæ¬ã¿ã€ãã®
NSãã¬ãã£ãã¯ã¹ãåé€ããŸããã ä»çµã¿ãèŠãŠã¿ãŸãããã å
žåçãªäŸã¯JSONã§ã®äœæ¥ã§ãïŒ
let file = NSBundle.mainBundle().pathForResource("tutorials", ofType: "json") let url = NSURL(fileURLWithPath: file!) let data = NSData(contentsOfURL: url) let json = try! NSJSONSerialization.JSONObjectWithData(data!, options: []) print(json)
åºæ¬ã¯ã©ã¹ã䜿çšããŠããã¡ã€ã«ã«æ¥ç¶ããããã«å¿ããŠJSON圢åŒã§ããŒã¿ãæœåºã§ããŸã
ãNSBundle-> NSURL-> NSData-> NSJSONSerializationãNSãã¬ãã£ãã¯ã¹ã¯Swift 3ã§ã¯äœ¿çšãããªãããããã¹ãŠ
ãã³ãã«-> URL->ããŒã¿-> JSONSerializationïŒïŒã«ãªããŸãã let file = Bundle.main().pathForResource("tutorials", ofType: "json") let url = URL(fileURLWithPath: file!) let data = try! Data(contentsOf: url) let json = try! JSONSerialization.jsonObject(with: data) print(json)
ãã®åœå倿޿é ã«ã€ããŠã¯ã
Tony ParkerãšPhilip Hauslerã«ãã£ãŠæžããããã®æã確èªã§ããŸã
ãM_PI察.pi
äžããããååŸã®åãšåã®é¢ç©ãèšç®ããŸãããïŒ
let r = 3.0 let circumference = 2 * M_PI * r let area = M_PI * r * r
Swiftã®å€ãããŒãžã§ã³ã§ã¯ã
M_PIã䜿çšããŠ
pi宿°ã瀺ããŸãã Swift 3ã¯ã宿°
piã
Float ã
Double ãããã³
CGFloatåã«çµ±åã
ãŸã ã
Float.pi Double.pi CGFloat.pi
äžèšã®ã³ãŒãã¹ããããã¯ãSwift 3ã§æ¬¡ã®ããã«èšè¿°ãããŸãã
let r = 3.0 let circumference = 2 * Double.pi * r let area = Double.pi * r * r
åæšè«ã䜿çšãããšãåãçç¥ããããšãã§ããŸãã ãããçãããŒãžã§ã³ã§ãïŒ
let r = 3.0 let circumference = 2 * .pi * r let area = .pi * r * r
ã°ã©ã³ãã»ã³ãã©ã«æŽŸé£
Grand Central Dispatchã¯ãã¡ã€ã³ã¹ã¬ããã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããããã¯ããªããããã¯ãŒã¯æäœã«äœ¿çšãããŸãã Cèšèªã§æžãããŠããããã®APIã¯ãéåæãã¥ãŒã®äœæãæäœã®å®è¡ãªã©ã®åçŽãªã¿ã¹ã¯ãå®è¡ããããšãããåå¿è
ã®éçºè
ã«ãšã£ãŠéåžžã«å°é£ã§ãã
let queue = dispatch_queue_create("Swift 2.2", nil) dispatch_async(queue) { print("Swift 2.2 queue") }
Swift 3ã¯ããªããžã§ã¯ãæåã®ã¢ãããŒããæ¡çšããããšã«ããããã¹ãŠã®å®åã³ãŒããšåé·ãªè³æãæé€ããŸãã
let queue = DispatchQueue(label: "Swift 3") queue.async { print("Swift 3 queue") }
ãã®å€æŽã®è©³çްã«ã€ããŠã¯ã
Matt Wrightãã芧ãã ããã
ã³ã¢ã°ã©ãã£ãã¯ã¹ãããè¿
éã«ãªããŸãã
Core Graphicsã¯åŒ·åãªã°ã©ãã£ãã¯ãã¬ãŒã ã¯ãŒã¯ã§ãããGCDã«äŒŒãCã¹ã¿ã€ã«ã®ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŸãã
let frame = CGRect(x: 0, y: 0, width: 100, height: 50) class View: UIView { override func drawRect(rect: CGRect) { let context = UIGraphicsGetCurrentContext() let blue = UIColor.blueColor().CGColor CGContextSetFillColorWithColor(context, blue) let red = UIColor.redColor().CGColor CGContextSetStrokeColorWithColor(context, red) CGContextSetLineWidth(context, 10) CGContextAddRect(context, frame) CGContextDrawPath(context, .FillStroke) } } let aView = View(frame: frame)
DrawRectïŒïŒã¡ãœããããªãŒããŒã©ã€ãããŠUIViewã¯ã©ã¹ãæ¡åŒµããããšã«ããããã¥ãŒãã¬ãŒã ãäœæããŸãã
Swift 3ã¯å®å
šã«ç°ãªãã¢ãããŒããåããŸã-æåã«çŸåšã®ã°ã©ãã£ãã¯ã³ã³ããã¹ããå±éãããã¹ãŠã®æç»æäœãå®è¡ããŠãããããã«é¢é£ä»ããããŸãã
let frame = CGRect(x: 0, y: 0, width: 100, height: 50) class View: UIView { override func draw(_ rect: CGRect) { guard let context = UIGraphicsGetCurrentContext() else { return } let blue = UIColor.blue().cgColor context.setFillColor(blue) let red = UIColor.red().cgColor context.setStrokeColor(red) context.setLineWidth(10) context.addRect(frame) context.drawPath(using: .fillStroke) } } let aView = View(frame: frame)
æ³šïŒ DrawRectïŒïŒãåŒã³åºãåã«ã³ã³ããã¹ãã¯ãŒãã«ãªããããã¬ãŒãåŒã䜿çšããŠã³ã³ããã¹ããå±éããå¿
èŠããããŸã ã詳现ã¯ãã¡ããã芧ãã ãã ãåè©ãšåè©ã®åœåèŠçŽ
ææ³ã®æéïŒ Swift 3ã®ã¡ãœããã®ã°ã«ãŒãã¯ã2ã€ã®ã«ããŽãªã«åé¡ãããŸããç¹å®ã®æå³ãè¿ãã¡ãœãã-åè©ãæå³ããŸã-ãšç¹å®ã®ã¿ã€ãã®ã¢ã¯ã·ã§ã³ãå®è¡ããã¡ãœãã-åè©ãæå³ããŸãã
10ãã1ãžã®åºåã¯ããã§å®è¡ãããŸãïŒ
for i in (1...10).reverse() { print(i) }
ç¯å²ã倿Žããã«ã¯ã
reverseïŒïŒã¡ãœããã䜿çšããŸãã Swift 3ã¯å
ã®ç¯å²ãéé ã§è¿ãããããã®æäœãåè©ãšããŠæ±ããŸãã 圌ã¯ã¡ãœããã«æ¥å°ŸèŸãedãã远å ããŸãã
for i in (1...10).reversed() { print(i) }
é
åã®å
容ã衚瀺ããããã®ã¿ãã«/ã¿ãã«ã®æãäžè¬çãªäœ¿çšæ³ïŒ
var array = [1, 5, 3, 2, 4] for (index, value) in array.enumerate() { print("\(index + 1) \(value)") }
Swift 3ã¯ããã®é
åã®çŸåšã®ã€ã³ããã¯ã¹ãšå€ãå«ãã¿ãã«ãè¿ããããã«ãµãã£ãã¯ã¹ãedãã远å ããããããã®ã¡ãœãããåè©ãšããŠæ±ããŸãã
var array = [1, 5, 3, 2, 4] for (index, value) in array.enumerated() { print("\(index + 1) \(value)") }
å¥ã®äŸã¯é
åã®ãœãŒãã§ãã é
åãæé ã§äžŠã¹æ¿ããæ¹æ³ã®äŸã次ã«ç€ºããŸãã
var array = [1, 5, 3, 2, 4] let sortedArray = array.sort() print(sortedArray)
Swift 3ã¯ãœãŒããããé
åãè¿ãããããã®æäœãåè©ãšããŠæ±ããŸãã
sortã¡ãœããã¯ã
sortedãšåŒã°ãã
ããã«ãªããŸãã ïŒ
var array = [1, 5, 3, 2, 4] let sortedArray = array.sorted() print(sortedArray)
äžé宿°ã䜿çšããã«é
åããœãŒãããŸãããã Swift 2ã§ã¯ã次ã®ããã«é¢æ°ãåŒã³åºãããšãã§ããŸãã
var array = [1, 5, 3, 2, 4] array.sortInPlace() print(array)
sortInPlaceïŒïŒã䜿çšããŠãå¯å€é
åããœãŒãããŸãã Swift 3ã¯ãå€ãè¿ããã«å®éã®ãœãŒããè¡ãããããã®ã¡ãœãããåè©ãšããŠæ±ããŸãã ã¢ã¯ã·ã§ã³ã説æããåºæ¬èªã®ã¿ã䜿çšããŸãã ãããã£ãŠã
sortInPlaceïŒïŒã¯ sortïŒïŒãšåŒã°ãã
ããã«ãªããŸãã ã
var array = [1, 5, 3, 2, 4] array.sort() print(array)
åœåèŠåã®è©³çްã«ã€ããŠã¯ã
API Design Guidelinesãã芧ãã ããã
Swift API
Swift 3ã¯ãã®APIã«å¯ŸããŠåçŽãªå²åŠãæ¡çšããŠããŸã-äžèŠãªåèªãçç¥ããããã«ãäœããåé·ã§ãããã³ã³ããã¹ãããåãåºããå Žåã¯åé€ããŸãïŒ
- XCPlaygroundPage.currentPageã¯PlaygroundPage.currentã«ãªããŸã
- button.setTitleïŒforStateïŒã¯button.setTitleïŒforïŒã«ãªããŸã
- button.addTargetïŒã¢ã¯ã·ã§ã³ãforControlEventsïŒã¯button.addTargetïŒã¢ã¯ã·ã§ã³ãforïŒã«ãªããŸã
- NSBundle.mainBundleïŒïŒã¯Bundle.mainïŒïŒã«ãªããŸã
- NSDataïŒcontentsOfURLïŒã¯URLïŒcontentsOfïŒã«ãªããŸã
- NSJSONSerialization.JSONObjectWithDataïŒïŒã¯JSONSerialization.jsonObjectïŒwithïŒã«ãªããŸã
- UIColor.blueColorïŒïŒã¯UIColor.blueïŒïŒã«ãªããŸã
- UIColor.redColorïŒïŒã¯UIColor.redïŒïŒã«ãªããŸã
åæå
Swift 3ã¯åæãããããã£ãšããŠæ±ãããã
upperCamelCaseã§ã¯ãªã
lowerCamelCaseã䜿çšããŸãã
- .Systemã¯.systemã«ãªããŸã
- .TouchUpInsideã¯.touchUpInsideã«ãªããŸã
- .FillStrokeã¯.fillStrokeã«ãªããŸã
- .CGColorã¯.cgColorã«ãªããŸã
@discardableResult
Swift 3ã§ã¯ã颿°ãŸãã¯ã¡ãœããã®æ»ãå€ã䜿çšããŠããªãå ŽåãXcodeã¯èŠåã衚瀺ããŸãã 以äžã«äŸã瀺ããŸãã

äžèšã®ã³ãŒãã§ã¯ã
printMessageã¡ãœããã¯åŒã³åºãå
ã®åä¿¡ã¡ãã»ãŒãžãè¿ããŸãã ãã ããæ»ãå€ã¯äœ¿çšãããŸããã ããã¯æœåšçãªåé¡ã«ãªãå¯èœæ§ããããããSwift 3ã®ã³ã³ãã€ã©ã¯èŠåã衚瀺ããŸãã
ãã®å ŽåãåŠçãããæ»ãå€ã§ãªãå Žåã ã¡ãœãã宣èšã«
@discardableResultã远å ãããšãèŠåãæå¶ããããšãã§ããŸãã
override func viewDidLoad() { super.viewDidLoad() printMessage(message: "Hello Swift 3!") } @discardableResult func printMessage(message: String) -> String { let outputMessage = "Output : \(message)" print(outputMessage) return outputMessage }
ãããã«
Swift 3ããã¹ãŠã§ããSwiftã®æ°ããããŒãžã§ã³ã¯ãã¡ãžã£ãŒãªãªãŒã¹ã®1ã€ã§ãããèšèªãããã«æ¹åãããŠããŸãã æ¢åã®ã³ãŒãã«ç¢ºãã«åœ±é¿ãäžããå¯èœæ§ã®ããå€ãã®åºæ¬çãªå€æŽãå«ãŸããŠããŸãã ãã®èšäºã倿Žãããããçè§£ããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãããŸãããããžã§ã¯ããSwiftã«ç§»è¡ããæéãç¯çŽã§ããããšãé¡ã£ãŠããŸãã