ãè¿œèšã
æ¬èšäº + α ã®å
容ã以äžã§äžå¯§ã«ãŸãšããŸãã(äžéšæ¬èšäºã®ã¿ã«èšèŒãããŠããå
容ããããŸãã)ã
- Swift 3.1ã®ãªãªãŒã¹ããã»ã¹ããã³ããã«å«ãŸããå€æŽå 容ã®çŽ¹ä»ïŒåç·šïŒ - Build Insider
- Swift 3.1ã®ãªãªãŒã¹ããã»ã¹ããã³ããã«å«ãŸããå€æŽå 容ã®çŽ¹ä»ïŒåŸç·šïŒ - Build Insider
ãããããSwift 3.1 ã®ããšãæ°ã«ãªã£ãŠããé ããªãšæã£ãŠãããã«ã€ããŠæžããŠã¿ãŸãã
Swift 3.1 ã§äºå®ãããŠããå€æŽç¹(çŸæç¹)
çŸåšå®è£ æžã¿ã®äž»ãªå€æŽç¹ã¯ãSwift 3.1 ã® CHANGELOG ã«èšèŒãããŠããŸãã
çŸæç¹ã§ã¯ã以äžã®3ç¹ãèšèŒãããŠããŸãã
- SR-1446: Nested generics
- SR-1009: Add methods to an Array containing a specific type
- SE-0045: Add prefix(while:) and drop(while:) to the stdlib
ä»ã«ã现ãããã°ä¿®æ£ãªã©å«ãã¯ãã§ãããSwift ãªããžããªã® CHANGELOG ã«ã¯ãããŸã§çŽ°ããç²åºŠã§èšèŒããªãããªã·ãŒã®ããã«èŠããŸãã
äŸãã°ãSwift 3.0.1 ã®çŽ°ããæ¹åã«ã€ããŠããCHANGELOG ã«ã¯èšèŒããããXcode 8.1 ã®ãªãªãŒã¹ããŒããžã®èšèŒã®ã¿ãšãªã£ãŠããŸããã
ãŸããSwift-Evolution Proposal Status ãèŠããšãããã«çŽ°ããååãåãããŸãã
- äžã«ããããã®ã®ä»ã«ãSE-0140: Availability by Swift version ãSwift 3.1 ã«å®è£ æžã¿ã§ããããš
- å®è£ äžã®ãã®ãããã€ãããããš(Swift 3.1 ã«å ¥ããšã¯éããªãïŒ)
- åãå ¥ããããšã¯æ±ºãŸã£ããããŸã å®è£ çæåã®ãã®ãããããš(Swift 3.1 ã«å ¥ããšã¯éããªã)
Swift 3.1ã¯ãã€ãªãªãŒã¹ãããïŒ
æªå®ã§ããããããŸã§ã®ãªãªãŒã¹ãµã€ã¯ã«èŠããšã2017幎3æé ã« Xcode 8.3 ãšã»ããã§ãªãªãŒã¹ãããããªïŒãšäºæ³ããŠããŸãã(å®å šã«äºæ³ã§ã)
ãè¿œèšã
ãã®èšäºãæžããåŸã«ã¢ããŠã³ã¹ãããSwift.org - Swift 3.1 Release Process ã«ã2017幎æ¥ããšèšèŒãããŠããŸããã
Swift 3.1 ã®æ©èœã¯ã©ããã£ãŠè©Šãã°è¯ãïŒ
ããã€ãæ¹æ³ããããŸãã
æ¹æ³1: Swift ã®ãµã€ãããããŠã³ããŒã
Swift.org - Download Swift ããéçºçãããŠã³ããŒãåºæ¥ãŸãã
ä»ã®æ£åŒææ°çã¯Swift 3.0.1 ã§ãããéçºçã® Swift ã«ãçš®é¡ããããšããããšã«æ³šæã§ãã
- 3.0 ç³»ã®ããŒã¿(次㯠3.0.2 )
-
swift-3.0-branch
ãã©ã³ãäžã§é©å®ã¿ã°(swift-3.0.2-PREVIEW-1
ãªã©)ãåãããŠãã
-
- éçºææ°çã§ãã
master
ãã©ã³ãã® Snapshots-
master
äžã§ãã¿ã°(swift-DEVELOPMENT-SNAPSHOT-2016-12-01-a
ãªã©)ãåãããŠãã - çŸæç¹ã§ã¯
swift-3.1-branch
ãšä¹é¢ããŠããªãã®ã§ãå®è³ª3.1éçºçãšã¿ãªããç¶æ
-
ãšããããã§ãSwift 3.1 ã䜿ãããå Žåã¯ãSnapshotsææ°ç ããããŠã³ããŒãããã°è¯ãããšãåãããŸãã
ããŠã³ããŒãã»ã€ã³ã¹ããŒã«åŸããã®ããã«ããŒã«ãã§ãŒã³ã Snapshot çã«èšå®ããã° Swift 3.1 ã®éçºçã䜿ããããã«ãªããŸãã
ã¡ãªã¿ã«ãåè
ã®ã3.0 ç³»ã®ããŒã¿(次㯠3.0.2 )ãã¯ä»¥äžã§é
åžãããŠãããã®ã䜿ãã®ãè¯ããšæããŸã:
Download - Apple Developer
æ¹æ³2: èªå㧠Swift ããã«ããã
以äžãåèã«èªåã§ãã«ãããæ¹æ³ããããŸãã
-
ãªãŒãã³ãœãŒã¹ã«ãªã£ãSwiftããã«ãããŠã¿ã - Qiita
- 1幎å Swift ããªãŒãã³ãœãŒã¹å ¬éãããçŽåŸã®èšäºãªã®ã§ãã®ãŸãŸå®è¡ããŠãããŸããããªããããããŸããããå ååèã«ã¯ãªããŸã
- apple/swift: The Swift Programming Language
ã¡ãªã¿ã«ãåã¯ä»¥åã¯ãããªããã«ãæåããŸããããä»ä¹ ãã¶ãã«ãã£ãã倱æããŠããŸããå ¬åŒããã¥ã¡ã³ãããªãããªããå°ãã ããã©ã€ããŸããããããŸããããäžæŠæŸæ£ããŸãã(ä»ç¹ã«ãã«ããããçç±ãç¡ãã£ãã®ã§ãã£ããæ念)ã
æ¹æ³3: IBM Swift Sandbox BETA ã䜿ã
IBM Swift Sandbox BETA ã§æžãã°äžçªãæ軜ãªã®ã§ããªã¹ã¹ã¡ã§ãã
ä»ã® Xcode beta ãšããŠãé
åžãããŠããªãã¬ãã«ã®ããŒãžã§ã³ã§ãã£ã€ãéçºãããããšã¯éåžžç¡ãã¯ãã§ãã¡ãã£ãšããã³ãŒããè©ŠããŠã¿ããçšåºŠã®ããšãã»ãšãã©ã®ã¯ãã§ããã
ãã®ããã«ãããçšåºŠå
ã®ãã«ããè©ŠããŸã(çŸæç¹ã§ã®ææ°ã¯12æ9æ¥ã®ã¹ãããã·ã§ããçžåœ)ã
æ¹æ³1ã§ååŸåºæ¥ãææ°çãšæ¯ã¹ãŠå°ãå€ãã§ãããè©ŠããŠã¿ããæ©èœãéè¯ãããã«å«ãŸããŠããããã®æ¹æ³ã§æ€èšŒããã®ãäžçªæ¥œã§ããã
(ããããLinuxçãšããããšã§éåžžã® macOSã»Xcode ã§äœ¿ã£ãŠãã Swift ãšåŸ®åŠãªæåã®å·®ããããããããªãããšã«æ³šæã§ããã)
ãã ãã³ãŒãè£å®ãããŸãå¹ããªãããšã»è©äŸ¡çµæã®èªååºåãç¡ãããšãªã©ãXcodeã®Playgroundãšæ¯ã¹ãŠå£ãç¹ãããã€ããããŸãã
SR-1009: Add methods to an Array containing a specific type ãè©ŠããŠã¿ã
Optional<String>
(String?
) ã«ãã¡ãã£ãšãã䟿å©ã¡ãœãããçãããŠã¿ãŸãããã
extension Optional where Wrapped == String {
/** å€ãããã°ãããè¿ããŠç¡ããã°ç©ºæåãè¿ã */
var getOrDefault: String {
return self ?? ""
}
/** nilã空æåã®å Žåã¯trueããã以å€ã®æã¯falseãè¿ã */
var isNilOrEmpty: Bool {
return self?.isEmpty ?? true
}
}
äžã®ã¯çŽ çŽãªå®è£
ã§ãããSwift 3.0ã§ã¯ where Wrapped == String
ã®ç®æã§æ¬¡ã®ã³ã³ãã€ã«ãšã©ãŒãåºãŠããŸããŸã(ÂŽã»ïžµã»ïœ)
Same-type requirement makes generic parameter 'Wrapped' non-generic
(ãã¡ãã§ç¢ºèªåºæ¥ãŸã: http://swiftlang.ng.bluemix.net/#/repl/58464c1a28620350e04560fa )
Swiftã¯ãžã§ããªã¯ã¹ã®å¶çŽãå€ãã§ãã
åè: Safx: Swift 2.1ã®ãžã§ããªã¯ã¹ã§ã§ããªãããšãŸãšã
ãšããããã§ãSwift 3.0 ã§æžããšãããã次ã®ããã«é¢åãªå®è£
ãšãªã£ãŠããŸããŸãã
(ããå°ãç°¡åãªæžãæ¹ãåãã§ãããæããŠãã ãã)
protocol StringProtocol {
var value: String { get }
}
extension String: StringProtocol {
var value: String { return self }
}
extension Optional where Wrapped: StringProtocol {
/** å€ãããã°ãããè¿ããŠç¡ããã°ç©ºæåãè¿ã */
var getOrDefault: String {
return self?.value ?? ""
}
/** nilã空æåã®å Žåã¯trueããã以å€ã®æã¯falseãè¿ã */
var isNilOrEmpty: Bool {
return self?.value.isEmpty ?? true
}
}
var s: String? = nil
s.getOrDefault // ""
s.isNilOrEmpty // true
s = "(ãŽâ¿ïœ¥ïœ)"
s.getOrDefault // (ãŽâ¿ïœ¥ïœ)
s.isNilOrEmpty // false
(ãã¡ãã§ç¢ºèªåºæ¥ãŸã: http://swiftlang.ng.bluemix.net/#/repl/58466c4b28620350e045610d )
å±æçã«å¯ŸåŠããã°è¯ãã®ã§èš±å®¹ç¯å²ã§ãããããŸãæ¬è³ªçã§ç¡ãæžãæ¹ãäœåãªããããŠã¡ãã£ãšæ®å¿µã§ããã
äœè«ã§ããããããã䟿å©ã¡ãœããçãããªããŠã以äžã§è¯ãæ°ãããŸãããã®çšåºŠã®åŠçã®å Žåãã©ã¡ããè¯ããè¿·ã£ãŠãŸãð€
s ?? ""
s?.isEmpty ?? true
SR-1009: Add methods to an Array containing a specific type ã§ããã解決ããŸããð
Swift 3.1 ã§ãåãã«æžããçŽæçãªã³ãŒãã®ã³ã³ãã€ã«ãéãããã«ãªããŸãð
ããã¯11æ1æ¥æç¹ã§å®è£
æžã¿ã ã£ããããIBM Swift Sandbox ã§ãè©Šããã®ã§ããã¡ãã§ç¢ºèªåºæ¥ãŸã:
http://swiftlang.ng.bluemix.net/#/repl/58464c7528620350e04560fb
Swift 3.1 ã«åããŠ
ä»ãžã§ããªã¯ã¹ã®å¶çŽãããã§ãããçŸç¶ã®èšèªä»æ§ã®å¶çŽã§å°æ¥æ¹åãããããšãæãããªãã®ã«é¢ããŠã¯ãTODO: Swift 3.1ã§çŽã
ãªã©æ·»ããŠãããšãåŸã§ãã¬ã€ãªã³ãŒãã«çŽãããããŠè¯ãããªãšæããŸããã
Swift 3.1 ãã㯠@available(swift, obsoleted: 3.1)
ã䜿ãã
Swift 3.1 ã«SE-0140: Availability by Swift version ãå ¥ãã®ã§ãäŸãã°ä»¥äžã®ããã«æžããšããã®ã¯ã©ã¹ã3.1 以éã§ã¯å©çšåºæ¥ãªããªãããšãäºãæ瀺åºæ¥ãŸãã
@available(swift, obsoleted: 3.1)
class MyClass {}
ãã ãSwift 3.0 ã«ã¯å
¥ã£ãŠããªãã®ã§ãä»äœ¿ããšä»¥äžã®ããã«èŠåãçºçããŠããŸããŸãã
(ææç©ã«åœ±é¿ããªããšã¯ãããèŠåãæ°ã«ãã䜿ãã®ã¯è¯ããªãã§ãããð€)
Unknown platform 'swift' for attribute 'available'
æ¬åœã¯ãäžã§å®çŸ©ãã StringProtocol
ã«ä»ã㊠Swift 3.1 ã«åãããããšãã¹ãã§ãããâŠã
ãšã¯ãããSwift 3.1 㧠@available
å±æ§ã«ãã®æå®ãã§ããããã«ãªãã®ã§ãSwift 3.2以éã«åããŠã¯ãã®æ¹æ³ã¯äŸ¿å©ã«äœ¿ãããã§ãð
Swift 3.1 ã«ã€ããŠã®è©±ã¯æ°ãæ©ããããããŸããããä»åŸã©ããªã£ãŠããã®ãããŸã«ç¢ºèªããŠãããšèŠéããããªããŸããå°ãåãŸã§(2015幎11æ以å)ã¯ã Swift ã®ä»åŸã«ã€ããŠãã©ãã¯ããã¯ã¹ã§ãããããªãŒãã³ãœãŒã¹åãããŠãã®ããã«ææ¡åºæ¥ãç¶æ
ã«ãªã£ãŠãšãŠãè¯ãã£ãã§ã(ãŽâ¿ïœ¥ïœ)
Swift ã¯ä»åŸãç Žå£çå€æŽã¯ããªãéå®çã«ãªãã¯ãã§ããããã¬ã€ãªã³ãŒããä¿ã€ã«ã¯ãã¯ãé©å®æ¢åã³ãŒãã®æžãæãããæ¹ãè¯ãå Žé¢ãåºãŠãããã«æããŸããã