Swift児粥囂隈?械楚延楚、方象窃侏、圷怏、辛僉、僅冱吉?
<貧匯准
和匯准>
Swift 頁 iOS 才 OS X 哘喘蝕窟議匯壇仟囂冱。隼遇?泌惚低嗤 C 賜宀 Objective-C 蝕窟将刮議三?低氏窟孖 Swift 議載謹坪否脅頁低母呂議。
Swift 議窃侏頁壓 C 才 Objective-C 議児粥貧戻竃議?Int頁屁侏?Double才Float頁検泣侏?Bool頁下櫛侏?String頁忖憲堪。Swift 珊嗤曾倖嗤喘議鹿栽窃侏?Array才Dictionary?萩歌深鹿栽窃侏。
祥崧 C 囂冱匯劔?Swift 聞喘延楚栖序佩贋刈旺宥狛延楚兆栖購選峙。壓 Swift 嶄?峙音辛延議延楚嗤彭鴻刑議哘喘?万断祥頁械楚?遇拝曳 C 囂冱議械楚厚膿寄。壓 Swift 嶄?泌惚低勣侃尖議峙音俶勣個延?椎聞喘械楚辛參斑低議旗鷹厚紗芦畠旺拝厚挫仇燕器低議吭夕。
茅阻厘断母呂議窃侏?Swift 珊奐紗阻 Objective-C 嶄短嗤議窃侏曳泌圷怏?Tuple?。圷怏辛參斑低幹秀賜宀勧弓匯怏方象?曳泌恬葎痕方議卦指峙扮?低辛參喘匯倖圷怏辛參卦指謹倖峙。
Swift 珊奐紗阻辛僉?Optional?窃侏?喘噐侃尖峙髪払議秤趨。辛僉燕幣“椎隅嗤匯倖峙?旺拝万吉噐 x ”賜宀“椎隅短嗤峙”。辛僉嗤泣崧壓 Objective-C 嶄聞喘nil?徽頁万辛參喘壓販採窃侏貧?音叙叙頁窃。辛僉窃侏曳 Objective-C 嶄議nil峺寞厚紗芦畠匆厚醤燕孖薦?万頁 Swift 俯謹膿寄蒙來議嶷勣怏撹何蛍。
Swift 頁匯倖窃侏芦畠議囂冱?辛僉祥頁匯倖載挫議箭徨。Swift 辛參斑低賠萱仇岑祇峙議窃侏。泌惚低議旗鷹豚李誼欺匯倖String?窃侏芦畠氏怦峭低音弌伉勧秘匯倖Int。低辛參壓蝕窟竣粁勝壼窟孖旺俐屎危列。
壓宸倖箭徨嶄?塋俯議恷寄晦編鞠村肝方瓜蕗苧葎匯倖械楚?咀葎宸倖峙音氏個延。輝念晦編鞠村肝方瓜蕗苧葎匯倖延楚?咀葎耽肝晦編鞠村払移議扮昨脅俶勣奐紗宸倖峙。
低辛參壓匯佩嶄蕗苧謹倖械楚賜宀謹倖延楚?喘矯催侯蝕?
宸倖箭徨公welcomeMessage延楚耶紗阻窃侏炎廣?燕幣宸倖延楚辛參贋刈String窃侏議峙?
“窃侏葎String”議吭房頁“辛參贋刈販吭String窃侏議峙。”
welcomeMessage延楚孖壓辛參瓜譜崔撹販吭忖憲堪?
匯稀低繍械楚賜宀延楚蕗苧葎鳩協議窃侏?低祥音嬬聞喘屢揖議兆忖壅肝序佩蕗苧?賜宀個延凪贋刈議峙議窃侏。揖扮?低匆音嬬繍械楚嚥延楚序佩札廬。
println痕方補竃勧秘議String峙?
Swift 喘忖憲堪峨峙?string interpolation?議圭塀委械楚兆賜宀延楚兆輝恂媼了憲紗秘欺海忖憲堪嶄?Swift 氏喘輝念械楚賜延楚議峙紋算宸乂媼了憲。繍械楚賜延楚兆慧秘垈凄催嶄?旺壓蝕凄催念聞喘郡弍顧繍凪廬吶?
Swift 嶄議廣瞥嚥C 囂冱議廣瞥掲械屢貌。汽佩廣瞥參褒屎弍顧恬(//)葎軟兵炎芝:
Swift 戻工阻8?16?32才64了議嗤憲催才涙憲催屁方窃侏。宸乂屁方窃侏才 C 囂冱議凋兆圭塀載崧?曳泌8了涙憲催屁方窃侏頁UInt8?32了嗤憲催屁方窃侏頁Int32。祥崧 Swift 議凪麿窃侏匯劔?屁方窃侏寡喘寄亟凋兆隈。
茅掲低俶勣蒙協海業議屁方?匯違栖傍聞喘Int祥校阻。宸辛參戻互旗鷹匯崑來才辛鹸喘來。軸聞頁壓32了峠岬貧?Int辛參贋刈議屁方袈律匆辛參器欺-2147483648~2147483647?寄謹方扮昨宸厮将怎校寄阻。
検泣窃侏曳屁方窃侏燕幣議袈律厚寄?辛參贋刈曳Int窃侏厚寄賜宀厚弌議方忖。Swift 戻工阻曾嶽嗤憲催検泣方窃侏?
喇噐 Swift 頁窃侏芦畠議?侭參万氏壓園咎低議旗鷹扮序佩窃侏殊臥(type checks)?旺委音謄塘議窃侏炎芝葎危列。宸辛參斑低壓蝕窟議扮昨勝壼窟孖旺俐鹸危列。
輝低勣侃尖音揖窃侏議峙扮?窃侏殊臥辛參逸低閲窒危列。隼遇?宸旺音頁傍低耽肝蕗苧械楚才延楚議扮昨脅俶勣?塋瞬原╂猥諭H膵蘒稈屍佻塋瞬原╂猥唯?Swift 氏聞喘窃侏容霞(type inference)栖僉夲栽癖議窃侏。嗤阻窃侏容霞?園咎匂辛參壓園咎旗鷹議扮昨徭強容霞竃燕器塀議窃侏。圻尖載酒汽?峪勣殊臥低験議峙軸辛。
咀葎嗤窃侏容霞?才 C 賜宀 Objective-C 曳軟栖 Swift 載富俶勣蕗苧窃侏。械楚才延楚埋隼俶勣苧鳩窃侏?徽頁寄何蛍垢恬旺音俶勣低徭失栖頼撹。
輝低蕗苧械楚賜宀延楚旺験兜峙議扮昨窃侏容霞掲械嗤喘。輝低壓蕗苧械楚賜宀延楚議扮昨験公万断匯倖忖中楚(literal value 賜 literal)軸辛乾窟窃侏容霞。?忖中楚祥頁氏岷俊竃孖壓低旗鷹嶄議峙?曳泌42才3.14159。?
箭泌?泌惚低公匯倖仟械楚験峙42旺拝短嗤炎苧窃侏?Swift 辛參容霞竃械楚窃侏頁Int?咀葎低公万験議兜兵峙心軟栖崧匯倖屁方?
泌惚燕器塀嶄揖扮竃孖阻屁方才検泣方?氏瓜容霞葎Double窃侏?
和中議侭嗤屁方忖中楚議噴序崙峙脅頁17:
泌惚匯倖噴序崙方議峺方葎exp?椎宸倖方屢輝噐児方才10ドル^{exp}$議核持?
泌惚匯倖噴鎗序崙方議峺方葎exp?椎宸倖方屢輝噐児方才2ドル^{exp}$議核持?
和中議宸乂検泣忖中楚脅吉噐噴序崙議12.1875?
勣繍匯嶽方忖窃侏廬算撹総匯嶽?低勣喘輝念峙栖兜兵晒匯倖豚李窃侏議仟方忖?宸倖方忖議窃侏祥頁低議朕炎窃侏。壓和中議箭徨嶄?械楚twoThousand頁UInt16窃侏?隼遇械楚one頁Uint8窃侏。万断音嬬岷俊屢紗?咀葎万断窃侏音揖。侭參勣距喘UInt16(one)栖幹秀匯倖仟議UInt16方忖旺喘one議峙栖兜兵晒?隼朔聞喘宸倖仟方忖栖柴麻?
SomeType(ofInitialValue)頁距喘 Swift 更夛匂旺勧秘匯倖兜兵峙議潮範圭隈。壓囂冱坪何?UInt16嗤匯倖更夛匂?辛參俊鞭匯倖UInt8窃侏議峙?侭參宸倖更夛匂辛參喘孖嗤議UInt8栖幹秀匯倖仟議UInt16。廣吭?低旺音嬬勧秘販吭窃侏議峙?峪嬬勧秘UInt16坪何嗤斤哘更夛匂議峙。音狛低辛參制婢孖嗤議窃侏栖斑万辛參俊辺凪麿窃侏議峙?淫凄徭協吶窃侏??萩歌深制婢。
検泣方欺屁方議郡?廬算揖劔佩?屁方窃侏辛參喘Double賜宀Float窃侏栖兜兵晒?
輝低?勣公孖嗤窃侏軟匯倖厚嗤吭吶議兆忖扮?窃侏艶兆掲械嗤喘。邪譜低屎壓侃尖蒙協海業議翌何彿坿議方象?
輝低園亟訳周囂鞘曳泌if囂鞘議扮昨?下櫛峙掲械嗤喘?
泌惚低壓俶勣聞喘Bool窃侏議仇圭聞喘阻掲下櫛峙?Swift 議窃侏芦畠字崙氏烏危。和中議箭徨氏烏御匯倖園咎扮危列?
才 Swift 嶄議凪麿窃侏芦畠議箭徨匯劔?宸倖圭隈辛參閲窒危列旺隠屬宸翠旗鷹議吭夕悳頁賠漣議。
和中宸倖箭徨嶄?(404, "Not Found")頁匯倖宙峰 HTTP 彜蓑鷹?HTTP status code?議圷怏。HTTP 彜蓑鷹頁輝低萩箔利匈議扮昨 web 捲暦匂卦指議匯倖蒙歩峙。泌惚低萩箔議利匈音贋壓祥氏卦指匯倖404 Not Found彜蓑鷹。
低辛參委販吭乏會議窃侏怏栽撹匯倖圷怏?宸倖圷怏辛參淫根侭嗤窃侏。峪勣低??低辛參幹秀匯倖窃侏葎(Int, Int, Int)賜宀(String, Bool)賜宀凪麿販採低?勣議怏栽議圷怏。
低辛參繍匯倖圷怏議坪否蛍盾?decompose?撹汽鏡議械楚才延楚?隼朔低祥辛參屎械聞喘万断阻?
和中議箭徨聞喘toInt圭隈栖晦編繍匯倖String廬算撹Int?
輝低鳩協辛僉淫鳩糞根峙岻朔?低辛參壓辛僉議兆忖朔中紗匯倖湖名催(!)栖資函峙。宸倖妾名催燕幣“厘岑祇宸倖辛僉嗤峙?萩聞喘万。”宸瓜各葎辛僉峙議膿崙盾裂?forced unwrapping??
崧和中宸劔壓if囂鞘嶄亟匯倖辛僉鰯協?
泌惚廬算撹孔?actualNumber械楚辛參壓if囂鞘議及匯倖蛍屶嶄聞喘。万厮将瓜辛僉淫根議峙兜兵晒狛?侭參音俶勣壅聞喘!朔弸栖資函万議峙。壓宸倖箭徨嶄?actualNumber峪瓜喘栖補竃廬算潤惚。
低辛參壓辛僉鰯協嶄聞喘械楚才延楚。泌惚低?壓if囂鞘議及匯倖蛍屶嶄荷恬actualNumber議峙?低辛參個撹if var actualNumber?宸劔辛僉淫根議峙祥氏瓜験公匯倖延楚遇掲械楚。
嗤扮昨壓殻會尺更嶄?及匯肝瓜験峙岻朔?辛參鳩協匯倖辛僉悳氏嗤峙。壓宸嶽秤趨和?耽肝脅勣登僅才盾裂辛僉峙頁掲械詰丼議?咀葎辛參鳩協万悳氏嗤峙。
宸嶽窃侏議辛僉瓜協吶葎咨塀盾裂辛僉?implicitly unwrapped optionals?。委?勣喘恬辛僉議窃侏議朔中議諒催?String??個撹湖名催?String!?栖蕗苧匯倖咨塀盾裂辛僉。
輝辛僉瓜及匯肝験峙岻朔祥辛參鳩協岻朔匯岷嗤峙議扮昨?咨塀盾裂辛僉掲械嗤喘。咨塀盾裂辛僉麼勣瓜喘壓 Swift 嶄窃議更夛狛殻嶄?萩歌深窃糞箭岻寂議儉桟膿哈喘。
匯倖咨塀盾裂辛僉凪糞祥頁匯倖噸宥議辛僉?徽頁辛參瓜輝恂掲辛僉栖聞喘?旺音俶勣耽肝脅聞喘盾裂栖資函辛僉峙。和中議箭徨婢幣阻辛僉String才咨塀盾裂辛僉String岻寂議曝艶?
泌惚低議旗鷹壓距編桟廠和乾窟阻匯倖僅冱?曳泌低壓 Xcode 嶄更秀旺塰佩匯倖哘喘?低辛參賠萱仇心欺音栽隈議彜蓑窟伏壓陳戦旺殊臥僅冱瓜乾窟扮低議哘喘議彜蓑。緩翌?僅冱塋俯低現紗匯訳距編佚連。
低辛參聞喘畠蕉assert痕方栖亟匯倖僅冱。?assert痕方勧秘匯倖潤惚葎true賜宀false議燕器塀參式匯訳佚連?輝燕器塀葎false議扮昨宸訳佚連氏瓜?塋升?
僅冱佚連音嬬聞喘忖憲堪峨峙。僅冱佚連辛參福待?祥崧宸劔?
Swift 議窃侏頁壓 C 才 Objective-C 議児粥貧戻竃議?Int頁屁侏?Double才Float頁検泣侏?Bool頁下櫛侏?String頁忖憲堪。Swift 珊嗤曾倖嗤喘議鹿栽窃侏?Array才Dictionary?萩歌深鹿栽窃侏。
祥崧 C 囂冱匯劔?Swift 聞喘延楚栖序佩贋刈旺宥狛延楚兆栖購選峙。壓 Swift 嶄?峙音辛延議延楚嗤彭鴻刑議哘喘?万断祥頁械楚?遇拝曳 C 囂冱議械楚厚膿寄。壓 Swift 嶄?泌惚低勣侃尖議峙音俶勣個延?椎聞喘械楚辛參斑低議旗鷹厚紗芦畠旺拝厚挫仇燕器低議吭夕。
茅阻厘断母呂議窃侏?Swift 珊奐紗阻 Objective-C 嶄短嗤議窃侏曳泌圷怏?Tuple?。圷怏辛參斑低幹秀賜宀勧弓匯怏方象?曳泌恬葎痕方議卦指峙扮?低辛參喘匯倖圷怏辛參卦指謹倖峙。
Swift 珊奐紗阻辛僉?Optional?窃侏?喘噐侃尖峙髪払議秤趨。辛僉燕幣“椎隅嗤匯倖峙?旺拝万吉噐 x ”賜宀“椎隅短嗤峙”。辛僉嗤泣崧壓 Objective-C 嶄聞喘nil?徽頁万辛參喘壓販採窃侏貧?音叙叙頁窃。辛僉窃侏曳 Objective-C 嶄議nil峺寞厚紗芦畠匆厚醤燕孖薦?万頁 Swift 俯謹膿寄蒙來議嶷勣怏撹何蛍。
Swift 頁匯倖窃侏芦畠議囂冱?辛僉祥頁匯倖載挫議箭徨。Swift 辛參斑低賠萱仇岑祇峙議窃侏。泌惚低議旗鷹豚李誼欺匯倖String?窃侏芦畠氏怦峭低音弌伉勧秘匯倖Int。低辛參壓蝕窟竣粁勝壼窟孖旺俐屎危列。
械楚才延楚
械楚才延楚委匯倖兆忖?曳泌maximumNumberOfLoginAttempts賜宀welcomeMessage?才匯倖峺協窃侏議峙?曳泌方忖10賜宀忖憲堪"Hello"?購選軟栖。械楚議峙匯稀譜協祥音嬬個延?遇延楚議峙辛參昧吭厚個。蕗苧械楚才延楚
械楚才延楚駅倬壓聞喘念蕗苧?喘let栖蕗苧械楚?喘var栖蕗苧延楚。和中議箭徨婢幣阻泌採喘械楚才延楚栖芝村喘薩晦編鞠村議肝方?let maximumNumberOfLoginAttempts = 10 var currentLoginAttempt = 0宸曾佩旗鷹辛參瓜尖盾葎?“蕗苧匯倖兆忖頁maximumNumberOfLoginAttempts議仟械楚?旺公万匯倖峙10。隼朔?蕗苧匯倖兆忖頁currentLoginAttempt議延楚旺繍万議峙兜兵晒葎0.”
壓宸倖箭徨嶄?塋俯議恷寄晦編鞠村肝方瓜蕗苧葎匯倖械楚?咀葎宸倖峙音氏個延。輝念晦編鞠村肝方瓜蕗苧葎匯倖延楚?咀葎耽肝晦編鞠村払移議扮昨脅俶勣奐紗宸倖峙。
低辛參壓匯佩嶄蕗苧謹倖械楚賜宀謹倖延楚?喘矯催侯蝕?
var x = 0.0, y = 0.0, z = 0.0
廣吭?泌惚低議旗鷹嶄嗤音俶勣個延議峙?萩聞喘let購囚忖繍万蕗苧葎械楚。峪繍俶勣個延議峙蕗苧葎延楚。
窃侏炎廣
輝低蕗苧械楚賜宀延楚議扮昨辛參紗貧窃侏炎廣(type annotation)?傍苧械楚賜宀延楚嶄勣贋刈議峙議窃侏。泌惚勣耶紗窃侏炎廣?俶勣壓械楚賜宀延楚兆朔中紗貧匯倖丹催才腎鯉?隼朔紗貧窃侏兆各。宸倖箭徨公welcomeMessage延楚耶紗阻窃侏炎廣?燕幣宸倖延楚辛參贋刈String窃侏議峙?
var welcomeMessage: String蕗苧嶄議丹催旗燕彭“頁...窃侏”?侭參宸佩旗鷹辛參瓜尖盾葎?“蕗苧匯倖窃侏葎String?兆忖葎welcomeMessage議延楚。”
“窃侏葎String”議吭房頁“辛參贋刈販吭String窃侏議峙。”
welcomeMessage延楚孖壓辛參瓜譜崔撹販吭忖憲堪?
welcomeMessage = "Hello"
廣吭?匯違栖傍低載富俶勣亟窃侏炎廣。泌惚低壓蕗苧械楚賜宀延楚議扮昨験阻匯倖兜兵峙?Swift辛參容僅竃宸倖械楚賜宀延楚議窃侏?萩歌深窃侏芦畠才窃侏容僅。壓貧中議箭徨嶄?短嗤公welcomeMessage験兜兵峙?侭參延楚welcomeMessage議窃侏頁宥狛匯倖窃侏炎廣峺協議?遇音頁宥狛兜兵峙容僅議。
械楚才延楚議凋兆
低辛參喘販採低浪散議忖憲恬葎械楚才延楚兆?淫凄 Unicode 忖憲?let π = 3.14159 let 低挫 = "低挫弊順"械楚嚥延楚兆音嬬淫根方僥憲催?収遊?隠藻議?賜宀掲隈議?Unicode 鷹了?銭?嚥崙燕憲。匆音嬬參方忖蝕遊?徽頁辛參壓械楚嚥延楚兆議凪麿仇圭淫根方忖。
匯稀低繍械楚賜宀延楚蕗苧葎鳩協議窃侏?低祥音嬬聞喘屢揖議兆忖壅肝序佩蕗苧?賜宀個延凪贋刈議峙議窃侏。揖扮?低匆音嬬繍械楚嚥延楚序佩札廬。
廣吭?泌惚低俶勣聞喘嚥Swift隠藻購囚忖屢揖議兆各恬葎械楚賜宀延楚兆?低辛參聞喘郡哈催?`?繍購囚忖淫律議圭塀繍凪恬葎兆忖聞喘。涙胎泌採?低哘輝閲窒聞喘購囚忖恬葎械楚賜延楚兆?茅掲低艶涙僉夲。低辛參厚個孖嗤議延楚峙葎凪麿揖窃侏議峙?壓和中議箭徨嶄?friendlyWelcome議峙貫"Hello!"個葎阻"Bonjour!":
var friendlyWelcome = "Hello!" friendlyWelcome = "Bonjour!" // friendlyWelcome 孖壓頁 "Bonjour!"嚥延楚音揖?械楚議峙匯稀瓜鳩協祥音嬬厚個阻。晦編宸劔恂氏擬崑園咎扮烏危?
let languageName = "Swift" languageName = "Swift++" // 宸氏烏園咎扮危列 - languageName 音辛個延
補竃械楚才延楚
低辛參喘println痕方栖補竃輝念械楚賜延楚議峙:println(friendlyWelcome) // 補竃 "Bonjour!"println頁匯倖喘栖補竃議畠蕉痕方?補竃議坪否氏壓恷朔算佩。泌惚低喘 Xcode?println繍氏補竃坪否欺“console”中医貧。(総匯嶽痕方出print?率匯曝艶頁壓補竃坪否恷朔音氏算佩。)
println痕方補竃勧秘議String峙?
println("This is a string") // 補竃 "This is a string"
嚥 Cocoa 戦議NSLog痕方窃貌議頁?println痕方辛參補竃厚鹸墫議佚連。宸乂佚連辛參淫根輝念械楚才延楚議峙。Swift 喘忖憲堪峨峙?string interpolation?議圭塀委械楚兆賜宀延楚兆輝恂媼了憲紗秘欺海忖憲堪嶄?Swift 氏喘輝念械楚賜延楚議峙紋算宸乂媼了憲。繍械楚賜延楚兆慧秘垈凄催嶄?旺壓蝕凄催念聞喘郡弍顧繍凪廬吶?
println("The current value of friendlyWelcome is \(friendlyWelcome)")
// 補竃 "The current value of friendlyWelcome is Bonjour!
廣吭?忖憲堪峨峙侭嗤辛喘議僉??萩歌深忖憲堪峨峙。
廣瞥
萩繍低議旗鷹嶄議掲峇佩猟云廣瞥撹戻幣賜宀永芝參圭宴低繍栖堋響。Swift 議園咎匂繍氏壓園咎旗鷹扮徭強策待渠廣瞥何蛍。Swift 嶄議廣瞥嚥C 囂冱議廣瞥掲械屢貌。汽佩廣瞥參褒屎弍顧恬(//)葎軟兵炎芝:
// 宸頁匯倖廣瞥低匆辛參序佩謹佩廣瞥?凪軟兵炎芝葎汽倖屎弍顧朔効昧匯倖佛催(/*)?嶮峭炎芝葎匯倖佛催朔効昧汽倖屎弍顧(*/):
/* 宸頁匯倖, 謹佩廣瞥 */嚥C 囂冱謹佩廣瞥音揖?Swift 議謹佩廣瞥辛參廼耗壓凪万議謹佩廣瞥岻嶄。低辛參枠伏撹匯倖謹佩廣瞥翠?隼朔壓宸倖廣瞥翠岻嶄壅廼耗撹及屈倖謹佩廣瞥。嶮峭廣瞥扮枠峨秘及屈倖廣瞥翠議嶮峭炎芝?隼朔壅峨秘及匯倖廣瞥翠議嶮峭炎芝?
/* 宸頁及匯倖謹佩廣瞥議蝕遊 /* 宸頁及屈倖瓜廼耗議謹佩廣瞥 */ 宸頁及匯倖謹佩廣瞥議潤硫 */宥狛塰喘廼耗謹佩廣瞥?低辛參酔堀圭宴議廣瞥渠匯寄粁旗鷹?軸聞宸粁旗鷹岻嶄厮将根嗤阻謹佩廣瞥翠。
蛍催
嚥凪麿寄何蛍園殻囂冱音揖?Swift 旺音膿崙勣箔低壓耽訳囂鞘議潤硫侃聞喘蛍催?;??輝隼?低匆辛參梓孚低徭失議楼降耶紗蛍催。嗤匯嶽秤趨和駅倬勣喘蛍催?軸低嬉麻壓揖匯佩坪亟謹訳鏡羨議囂鞘?let cat = "🐱"; println(cat) // 補竃 "🐱"
屁方
屁方祥頁短嗤弌方何蛍議方忖?曳泌42才-23。屁方辛參頁嗤憲催?屎、減、巣?賜宀涙憲催?屎、巣?。Swift 戻工阻8?16?32才64了議嗤憲催才涙憲催屁方窃侏。宸乂屁方窃侏才 C 囂冱議凋兆圭塀載崧?曳泌8了涙憲催屁方窃侏頁UInt8?32了嗤憲催屁方窃侏頁Int32。祥崧 Swift 議凪麿窃侏匯劔?屁方窃侏寡喘寄亟凋兆隈。
屁方袈律
低辛參恵諒音揖屁方窃侏議min才max奉來栖資函斤哘窃侏議恷寄峙才恷弌峙?let minValue = UInt8.min // minValue 葎 0?頁 UInt8 窃侏議恷弌峙 let maxValue = UInt8.max // maxValue 葎 255?頁 UInt8 窃侏議恷寄峙
Int
匯違栖傍?低音俶勣廨壇峺協屁方議海業。Swift 戻工阻匯倖蒙歩議屁方窃侏Int?海業嚥輝念峠岬議圻伏忖海屢揖?- 壓32了峠岬貧?Int才Int32海業屢揖。
- 壓64了峠岬貧?Int才Int64海業屢揖。
茅掲低俶勣蒙協海業議屁方?匯違栖傍聞喘Int祥校阻。宸辛參戻互旗鷹匯崑來才辛鹸喘來。軸聞頁壓32了峠岬貧?Int辛參贋刈議屁方袈律匆辛參器欺-2147483648~2147483647?寄謹方扮昨宸厮将怎校寄阻。
UInt
Swift 匆戻工阻匯倖蒙歩議涙憲催窃侏UInt?海業嚥輝念峠岬議圻伏忖海屢揖?- 壓32了峠岬貧?UInt才UInt32海業屢揖。
- 壓64了峠岬貧?UInt才UInt64海業屢揖。
廣吭?勝楚音勣聞喘UInt?茅掲低寔議俶勣贋刈匯倖才輝念峠岬圻伏忖海屢揖議涙憲催屁方。茅阻宸嶽秤趨?恷挫聞喘Int?軸聞低勣贋刈議峙厮岑頁掲減議。由匯聞喘Int辛參戻互旗鷹議辛鹸喘來?閲窒音揖窃侏方忖岻寂議廬算?旺拝謄塘方忖議窃侏容霞?萩歌深窃侏芦畠才窃侏容霞。
検泣方
検泣方頁嗤弌方何蛍議方忖?曳泌3.14159?0.1才-273.15。検泣窃侏曳屁方窃侏燕幣議袈律厚寄?辛參贋刈曳Int窃侏厚寄賜宀厚弌議方忖。Swift 戻工阻曾嶽嗤憲催検泣方窃侏?
- Double燕幣64了検泣方。輝低俶勣贋刈載寄賜宀載互娼業議検泣方扮萩聞喘緩窃侏。
- Float燕幣32了検泣方。娼業勣箔音互議三辛參聞喘緩窃侏。
廣吭?Double娼鳩業載互?崛富嗤15了方忖?遇Float恷富峪嗤6了方忖。僉夲陳倖窃侏函畳噐低議旗鷹俶勣侃尖議峙議袈律。
窃侏芦畠才窃侏容霞
Swift 頁匯倖窃侏芦畠(type safe )議囂冱。窃侏芦畠議囂冱辛參斑低賠萱仇岑祇旗鷹勣侃尖議峙議窃侏。泌惚低議旗鷹俶勣匯倖String?低蒸斤音辛嬬音弌伉勧序肇匯倖Int。喇噐 Swift 頁窃侏芦畠議?侭參万氏壓園咎低議旗鷹扮序佩窃侏殊臥(type checks)?旺委音謄塘議窃侏炎芝葎危列。宸辛參斑低壓蝕窟議扮昨勝壼窟孖旺俐鹸危列。
輝低勣侃尖音揖窃侏議峙扮?窃侏殊臥辛參逸低閲窒危列。隼遇?宸旺音頁傍低耽肝蕗苧械楚才延楚議扮昨脅俶勣?塋瞬原╂猥諭H膵蘒稈屍佻塋瞬原╂猥唯?Swift 氏聞喘窃侏容霞(type inference)栖僉夲栽癖議窃侏。嗤阻窃侏容霞?園咎匂辛參壓園咎旗鷹議扮昨徭強容霞竃燕器塀議窃侏。圻尖載酒汽?峪勣殊臥低験議峙軸辛。
咀葎嗤窃侏容霞?才 C 賜宀 Objective-C 曳軟栖 Swift 載富俶勣蕗苧窃侏。械楚才延楚埋隼俶勣苧鳩窃侏?徽頁寄何蛍垢恬旺音俶勣低徭失栖頼撹。
輝低蕗苧械楚賜宀延楚旺験兜峙議扮昨窃侏容霞掲械嗤喘。輝低壓蕗苧械楚賜宀延楚議扮昨験公万断匯倖忖中楚(literal value 賜 literal)軸辛乾窟窃侏容霞。?忖中楚祥頁氏岷俊竃孖壓低旗鷹嶄議峙?曳泌42才3.14159。?
箭泌?泌惚低公匯倖仟械楚験峙42旺拝短嗤炎苧窃侏?Swift 辛參容霞竃械楚窃侏頁Int?咀葎低公万験議兜兵峙心軟栖崧匯倖屁方?
let meaningOfLife = 42 // meaningOfLife 氏瓜容霞葎 Int 窃侏揖尖?泌惚低短嗤公検泣忖中楚炎苧窃侏?Swift 氏容霞低?勣議頁Double?
let pi = 3.14159 // pi 氏瓜容霞葎 Double 窃侏輝容霞検泣方議窃侏扮?Swift 悳頁氏僉夲Double遇音頁Float。
泌惚燕器塀嶄揖扮竃孖阻屁方才検泣方?氏瓜容霞葎Double窃侏?
let anotherPi = 3 + 0.14159 // anotherPi 氏瓜容霞葎 Double 窃侏圻兵峙3短嗤?塋宿禱灝猥唯ii瑋躊鑛瞬亞氐崛牧燦櫤ゝ穽崔譱殖k窅埀躊鑛住甕四堂睥?Double窃侏。
方峙侏忖中楚
屁方忖中楚辛參瓜亟恬?- 匯倖噴序崙方?短嗤念弸
- 匯倖屈序崙方?念弸頁0b
- 匯倖伊序崙方?念弸頁0o
- 匯倖噴鎗序崙方?念弸頁0x
和中議侭嗤屁方忖中楚議噴序崙峙脅頁17:
let decimalInteger = 17 let binaryInteger = 0b10001 // 屈序崙議17 let octalInteger = 0o21 // 伊序崙議17 let hexadecimalInteger = 0x11 // 噴鎗序崙議17検泣忖中楚辛參頁噴序崙?短嗤念弸?賜宀頁噴鎗序崙?念弸頁0x?。弌方泣曾円駅倬嗤崛富匯倖噴序崙方忖?賜宀頁噴鎗序崙議方忖?。検泣忖中楚珊嗤匯倖辛僉議峺方(exponent)?壓噴序崙検泣方嶄宥狛寄亟賜宀弌亟議e栖峺協?壓噴鎗序崙検泣方嶄宥狛寄亟賜宀弌亟議p栖峺協。
泌惚匯倖噴序崙方議峺方葎exp?椎宸倖方屢輝噐児方才10ドル^{exp}$議核持?
- 1.25e2 燕幣 1ドル.25 × 10^{2}$?吉噐 125.0。
- 1.25e-2 燕幣 1ドル.25 × 10^{-2}$?吉噐 0.0125。
泌惚匯倖噴鎗序崙方議峺方葎exp?椎宸倖方屢輝噐児方才2ドル^{exp}$議核持?
- 0xFp2 燕幣 15ドル × 2^{2}$?吉噐 60.0。
- 0xFp-2 燕幣 15ドル × 2^{-2}$?吉噐 3.75。
和中議宸乂検泣忖中楚脅吉噐噴序崙議12.1875?
let decimalDouble = 12.1875 let exponentDouble = 1.21875e1 let hexadecimalDouble = 0xC.3p0方峙窃忖中楚辛參淫凄駆翌議鯉塀栖奐膿辛響來。屁方才検泣方脅辛參耶紗駆翌議巣旺拝淫根和皿??旺音氏唹峒忖中楚?
let paddedDouble = 000123.456 let oneMillion = 1_000_000 let justOverOneMillion = 1_000_000.000_000_1
方峙侏窃侏廬算
宥械栖讐?軸聞旗鷹嶄議屁方械楚才延楚厮岑掲減?匆萩聞喘Int窃侏。悳頁聞喘潮範議屁方窃侏辛參隠屬低議屁方械楚才延楚辛參岷俊瓜鹸喘旺拝辛參謄塘屁方窃忖中楚議窃侏容霞。 峪嗤壓駅勣議扮昨嘉聞喘凪麿屁方窃侏?曳泌勣侃尖翌何議海業苧鳩議方象賜宀葎阻單晒來嬬、坪贋媼喘吉吉。聞喘?塋瞬原┳ざ筏沈猥与敏埃以鰻∀嶽客膤??區敏坩喫蒋閽擺?輒慂睚鍪檗?屁方廬算
音揖屁方窃侏議延楚才械楚辛參贋刈音揖袈律議方忖。Int8窃侏議械楚賜宀延楚辛參贋刈議方忖袈律頁-128~127?遇UInt8窃侏議械楚賜宀延楚嬬贋刈議方忖袈律頁0~255。泌惚方忖階竃阻械楚賜宀延楚辛贋刈議袈律?園咎議扮昨氏烏危?let cannotBeNegative: UInt8 = -1 // UInt8 窃侏音嬬贋刈減方?侭參氏烏危 let tooBig: Int8 = Int8.max + 1 // Int8 窃侏音嬬贋刈階狛恷寄峙議方?侭參氏烏危喇噐耽嶄屁方窃侏脅辛參贋刈音揖袈律議峙?侭參低駅倬功象音揖秤趨僉夲來聞喘方峙侏窃侏廬算。宸嶽僉夲來聞喘議圭塀?辛參圓契咨塀廬算議危列旺斑低議旗鷹嶄議窃侏廬算吭夕延誼賠漣。
勣繍匯嶽方忖窃侏廬算撹総匯嶽?低勣喘輝念峙栖兜兵晒匯倖豚李窃侏議仟方忖?宸倖方忖議窃侏祥頁低議朕炎窃侏。壓和中議箭徨嶄?械楚twoThousand頁UInt16窃侏?隼遇械楚one頁Uint8窃侏。万断音嬬岷俊屢紗?咀葎万断窃侏音揖。侭參勣距喘UInt16(one)栖幹秀匯倖仟議UInt16方忖旺喘one議峙栖兜兵晒?隼朔聞喘宸倖仟方忖栖柴麻?
let twoThousand: UInt16 = 2_000 let one: UInt8 = 1 let twoThousandAndOne = twoThousand + UInt16(one)孖壓曾倖方忖議窃侏脅頁UInt16?辛參序佩屢紗。朕炎械楚twoThousandAndOne議窃侏瓜容霞葎UInt16?咀葎万頁曾倖UInt16峙議才。
SomeType(ofInitialValue)頁距喘 Swift 更夛匂旺勧秘匯倖兜兵峙議潮範圭隈。壓囂冱坪何?UInt16嗤匯倖更夛匂?辛參俊鞭匯倖UInt8窃侏議峙?侭參宸倖更夛匂辛參喘孖嗤議UInt8栖幹秀匯倖仟議UInt16。廣吭?低旺音嬬勧秘販吭窃侏議峙?峪嬬勧秘UInt16坪何嗤斤哘更夛匂議峙。音狛低辛參制婢孖嗤議窃侏栖斑万辛參俊辺凪麿窃侏議峙?淫凄徭協吶窃侏??萩歌深制婢。
屁方才検泣方廬算
屁方才検泣方議廬算駅倬?塋瞬原╂猥唯?let three = 3 let pointOneFourOneFiveNine = 0.14159 let pi = Double(three) + pointOneFourOneFiveNine // pi 吉噐 3.14159?侭參瓜容霞葎 Double 窃侏宸倖箭徨嶄?械楚three議峙瓜喘栖幹秀匯倖Double窃侏議峙?侭參紗催曾円議方窃侏屢揖。泌惚音序佩廬算?曾宀涙隈屢紗。
検泣方欺屁方議郡?廬算揖劔佩?屁方窃侏辛參喘Double賜宀Float窃侏栖兜兵晒?
let integerPi = Int(pi) // integerPi 吉噐 3?侭參瓜容霞葎 Int 窃侏輝喘宸嶽圭塀栖兜兵晒匯倖仟議屁方峙扮?検泣峙氏瓜舜僅。匆祥頁傍4.75氏延撹4?-3.9氏延撹-3。
廣吭?潤栽方忖窃械楚才延楚音揖噐潤栽方忖窃忖中楚。忖中楚3辛參岷俊才忖中楚0.14159屢紗?咀葎方忖忖中楚云附短嗤苧鳩議窃侏。万断議窃侏峪壓園咎匂俶勣箔峙議扮昨瓜容霞。
窃侏艶兆
窃侏艶兆(type aliases)祥頁公孖嗤窃侏協吶総匯倖兆忖。低辛參聞喘typealias購囚忖栖協吶窃侏艶兆。輝低?勣公孖嗤窃侏軟匯倖厚嗤吭吶議兆忖扮?窃侏艶兆掲械嗤喘。邪譜低屎壓侃尖蒙協海業議翌何彿坿議方象?
typealias AudioSample = UInt16協吶阻匯倖窃侏艶兆岻朔?低辛參壓販採聞喘圻兵兆議仇圭聞喘艶兆?
var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound 孖壓頁 0云箭嶄?AudioSample瓜協吶葎UInt16議匯倖艶兆。咀葎万頁艶兆?AudioSample.min糞縞貧頁UInt16.min?侭參氏公maxAmplitudeFound験匯倖兜峙0。
下櫛峙
Swift 嗤匯倖児云議下櫛(Boolean)窃侏?出恂Bool。下櫛峙峺貸辞貧議(logical)?咀葎万断峪嬬頁寔賜宀邪。Swift 嗤曾倖下櫛械楚?true才false?let orangesAreOrange = true let turnipsAreDelicious = falseorangesAreOrange才turnipsAreDelicious議窃侏氏瓜容霞葎Bool?咀葎万断議兜峙頁下櫛忖中楚。祥崧岻念戻欺議Int才Double匯劔?泌惚低幹秀延楚議扮昨公万断験峙true賜宀false?椎低音俶勣繍械楚賜宀延楚蕗苧葎Bool窃侏。兜兵晒械楚賜宀延楚議扮昨泌惚侭験議峙窃侏厮岑?祥辛參乾窟窃侏容霞?宸斑 Swift 旗鷹厚紗酒準旺拝辛響來厚互。
輝低園亟訳周囂鞘曳泌if囂鞘議扮昨?下櫛峙掲械嗤喘?
if turnipsAreDelicious {
println("Mmm, tasty turnips!")
} else {
println("Eww, turnips are horrible.")
}
// 補竃 "Eww, turnips are horrible."
訳周囂鞘?箭泌if?萩歌深陣崙送。泌惚低壓俶勣聞喘Bool窃侏議仇圭聞喘阻掲下櫛峙?Swift 議窃侏芦畠字崙氏烏危。和中議箭徨氏烏御匯倖園咎扮危列?
let i = 1 if i { // 宸倖箭徨音氏宥狛園咎?氏烏危 }
隼遇?和中議箭徨頁栽隈議?
let i = 1 if i == 1 { // 宸倖箭徨氏園咎撹孔 }
i == 1議曳熟潤惚頁Bool窃侏?侭參及屈倖箭徨辛參宥狛窃侏殊臥。窃貌i == 1宸劔議曳熟?萩歌深児云荷恬憲。才 Swift 嶄議凪麿窃侏芦畠議箭徨匯劔?宸倖圭隈辛參閲窒危列旺隠屬宸翠旗鷹議吭夕悳頁賠漣議。
圷怏
圷怏?tuples?委謹倖峙怏栽撹匯倖鹸栽峙。圷怏坪議峙辛參聞販吭窃侏?旺音勣箔頁屢揖窃侏。和中宸倖箭徨嶄?(404, "Not Found")頁匯倖宙峰 HTTP 彜蓑鷹?HTTP status code?議圷怏。HTTP 彜蓑鷹頁輝低萩箔利匈議扮昨 web 捲暦匂卦指議匯倖蒙歩峙。泌惚低萩箔議利匈音贋壓祥氏卦指匯倖404 Not Found彜蓑鷹。
let http404Error = (404, "Not Found") // http404Error 議窃侏頁 (Int, String)?峙頁 (404, "Not Found")(404, "Not Found")圷怏委匯倖Int峙才匯倖String峙怏栽軟栖燕幣 HTTP 彜蓑鷹議曾倖何蛍?匯倖方忖才匯倖繁窃辛響議宙峰。宸倖圷怏辛參瓜宙峰葎“匯倖窃侏葎(Int, String)議圷怏”。
低辛參委販吭乏會議窃侏怏栽撹匯倖圷怏?宸倖圷怏辛參淫根侭嗤窃侏。峪勣低??低辛參幹秀匯倖窃侏葎(Int, Int, Int)賜宀(String, Bool)賜宀凪麿販採低?勣議怏栽議圷怏。
低辛參繍匯倖圷怏議坪否蛍盾?decompose?撹汽鏡議械楚才延楚?隼朔低祥辛參屎械聞喘万断阻?
let (statusCode, statusMessage) = http404Error
println("The status code is \(statusCode)")
// 補竃 "The status code is 404"
println("The status message is \(statusMessage)")
// 補竃 "The status message is Not Found"
泌惚低峪俶勣匯何蛍圷怏峙?蛍盾議扮昨辛參委勣策待議何蛍喘和皿??_?炎芝?
let (justTheStatusCode, _) = http404Error
println("The status code is \(justTheStatusCode)")
// 補竃 "The status code is 404"
緩翌?低珊辛參宥狛和炎栖恵諒圷怏嶄議汽倖圷殆?和炎貫巣蝕兵?
println("The status code is \(http404Error.0)") // 補竃 "The status code is 404"
println("The status message is \(http404Error.1)") // 補竃 "The status message is Not Found"
低辛參壓協吶圷怏議扮昨公汽倖圷殆凋兆?let http200Status = (statusCode: 200, description: "OK")公圷怏嶄議圷殆凋兆朔?低辛參宥狛兆忖栖資函宸乂圷殆議峙?
println("The status code is \(http200Status.statusCode)") // 補竃 "The status code is 200"
println("The status message is \(http200Status.description)") // 補竃 "The status message is OK"
恬葎痕方卦指峙扮?圷怏掲械嗤喘。匯倖喘栖資函利匈議痕方辛嬬氏卦指匯倖(Int, String)圷怏栖宙峰頁倦資函撹孔。才峪嬬卦指匯倖窃侏議峙曳熟軟栖?匯倖淫根曾倖音揖窃侏峙議圷怏辛參斑痕方議卦指佚連厚嗤喘。萩歌深[痕方歌方嚥卦指峙(06_Functions.html#Function_Parameters_and_Return_Values)。廣吭?圷怏壓匝扮怏岶峙議扮昨載嗤喘?徽頁旺音癖栽幹秀鹸墫議方象潤更。泌惚低議方象潤更旺音頁匝扮聞喘?萩聞喘窃賜宀潤更悶遇音頁圷怏。萩歌深窃才潤更悶。
辛僉
聞喘辛僉?optionals?栖侃尖峙辛嬬髪払議秤趨。辛僉燕幣?- 嗤峙?吉噐 x
- 短嗤峙
廣吭?C 才 Objective-C 嶄旺短嗤辛僉宸倖古廷。恷俊除議頁 Objective-C 嶄議匯倖蒙來?匯倖圭隈勣音卦指匯倖斤嵆勣音卦指nil?nil燕幣“髪富匯倖栽隈議斤嵆”。隼遇?宸峪斤斤嵆軟恬喘——斤噐潤更悶?児云議 C 窃侏賜宀旦訟窃侏音軟恬喘。斤噐宸乂窃侏?Objective-C 圭隈匯違氏卦指匯倖蒙歩峙?曳泌NSNotFound?栖圧幣峙髪払。宸嶽圭隈邪譜圭隈議距喘宀岑祇旺芝誼斤蒙歩峙序佩登僅。隼遇?Swift 議辛僉辛參斑低圧幣販吭窃侏議峙髪払?旺音俶勣匯倖蒙歩峙。栖心匯倖箭徨。Swift 議String窃侏嗤匯倖出恂toInt議圭隈?恬喘頁繍匯倖String峙廬算撹匯倖Int峙。隼遇?旺音頁侭嗤議忖憲堪脅辛參廬算撹匯倖屁方。忖憲堪"123"辛參瓜廬算撹方忖123?徽頁忖憲堪"hello, world"音佩。
和中議箭徨聞喘toInt圭隈栖晦編繍匯倖String廬算撹Int?
let possibleNumber = "123" let convertedNumber = possibleNumber.toInt() // convertedNumber 瓜容霞葎窃侏 "Int?"? 賜宀窃侏 "optional Int"咀葎toInt圭隈辛嬬氏払移?侭參万卦指匯倖辛僉議?optional?Int?遇音頁匯倖Int。匯倖辛僉議Int瓜亟恬Int?遇音頁Int。諒催圧幣淫根議峙頁辛僉?匆祥頁傍辛嬬淫根Int峙匆辛嬬音淫根峙。?音嬬淫根凪麿販採峙曳泌Bool峙賜宀String峙。峪嬬頁Int賜宀焚担脅短嗤。?
if 囂鞘參式膿崙盾裂
低辛參聞喘if囂鞘栖登僅匯倖辛僉頁倦淫根峙。泌惚辛僉嗤峙?潤惚頁true?泌惚短嗤峙?潤惚頁false。輝低鳩協辛僉淫鳩糞根峙岻朔?低辛參壓辛僉議兆忖朔中紗匯倖湖名催(!)栖資函峙。宸倖妾名催燕幣“厘岑祇宸倖辛僉嗤峙?萩聞喘万。”宸瓜各葎辛僉峙議膿崙盾裂?forced unwrapping??
if convertedNumber {
println("\(possibleNumber) has an integer value of \(convertedNumber!)")
} else {
println("\(possibleNumber) could not be converted to an integer")
}
// 補竃 "123 has an integer value of 123"
厚謹購噐if囂鞘議坪否?萩歌深陣崙送。廣吭?聞喘!栖資函匯倖音贋壓議辛僉峙氏擬崑塰佩扮危列。聞喘!栖膿崙盾裂峙岻念?匯協勣鳩協辛僉淫根匯倖掲nil議峙。
辛僉鰯協
聞喘辛僉鰯協?optional binding?栖登僅辛僉頁倦淫根峙?泌惚淫根祥委峙験公匯倖匝扮械楚賜宀延楚。辛僉鰯協辛參喘壓if才while囂鞘嶄栖斤辛僉議峙序佩登僅旺委峙験公匯倖械楚賜宀延楚。if才while囂鞘?萩歌深陣崙送。崧和中宸劔壓if囂鞘嶄亟匯倖辛僉鰯協?
if let constantName = someOptional { statements }
低辛參崧貧中宸劔聞喘辛僉鰯協栖嶷亟possibleNumber宸倖箭徨?
if let actualNumber = possibleNumber.toInt() {
println("\(possibleNumber) has an integer value of \(actualNumber)")
} else {
println("\(possibleNumber) could not be converted to an integer")
}
// 補竃 "123 has an integer value of 123"
宸粁旗鷹辛參瓜尖盾葎?“泌惚possibleNumber.toInt卦指議辛僉Int淫根匯倖峙?幹秀匯倖出恂actualNumber議仟械楚旺繍辛僉淫根議峙験公万。”泌惚廬算撹孔?actualNumber械楚辛參壓if囂鞘議及匯倖蛍屶嶄聞喘。万厮将瓜辛僉淫根議峙兜兵晒狛?侭參音俶勣壅聞喘!朔弸栖資函万議峙。壓宸倖箭徨嶄?actualNumber峪瓜喘栖補竃廬算潤惚。
低辛參壓辛僉鰯協嶄聞喘械楚才延楚。泌惚低?壓if囂鞘議及匯倖蛍屶嶄荷恬actualNumber議峙?低辛參個撹if var actualNumber?宸劔辛僉淫根議峙祥氏瓜験公匯倖延楚遇掲械楚。
nil
低辛參公辛僉延楚験峙葎nil栖燕幣万短嗤峙?var serverResponseCode: Int? = 404 // serverResponseCode 淫根匯倖辛僉議 Int 峙 404 serverResponseCode = nil // serverResponseCode 孖壓音淫根峙
廣吭?nil音嬬喘噐掲辛僉議械楚才延楚。泌惚低議旗鷹嶄嗤械楚賜宀延楚俶勣侃尖峙髪払議秤趨?萩委万断蕗苧撹斤哘議辛僉窃侏。泌惚低蕗苧匯倖辛僉械楚賜宀延楚徽頁短嗤験峙?万断氏徭強瓜譜崔葎nil?
var surveyAnswer: String? // surveyAnswer 瓜徭強譜崔葎 nil
廣吭?Swift 議nil才 Objective-C 嶄議nil旺音匯劔。壓 Objective-C 嶄?nil頁匯倖峺?音贋壓斤嵆議峺寞。壓 Swift 嶄?nil音頁峺寞——万頁匯倖鳩協議峙?喘栖燕幣峙髪払。販採窃侏議辛僉脅辛參瓜譜崔葎nil?音峪頁斤嵆窃侏。
咨塀盾裂辛僉
泌貧侭峰?辛僉圧幣阻械楚賜宀延楚辛參“短嗤峙”。辛僉辛參宥狛if囂鞘栖登僅頁倦嗤峙?泌惚嗤峙議三辛參宥狛辛僉鰯協栖盾裂峙。嗤扮昨壓殻會尺更嶄?及匯肝瓜験峙岻朔?辛參鳩協匯倖辛僉悳氏嗤峙。壓宸嶽秤趨和?耽肝脅勣登僅才盾裂辛僉峙頁掲械詰丼議?咀葎辛參鳩協万悳氏嗤峙。
宸嶽窃侏議辛僉瓜協吶葎咨塀盾裂辛僉?implicitly unwrapped optionals?。委?勣喘恬辛僉議窃侏議朔中議諒催?String??個撹湖名催?String!?栖蕗苧匯倖咨塀盾裂辛僉。
輝辛僉瓜及匯肝験峙岻朔祥辛參鳩協岻朔匯岷嗤峙議扮昨?咨塀盾裂辛僉掲械嗤喘。咨塀盾裂辛僉麼勣瓜喘壓 Swift 嶄窃議更夛狛殻嶄?萩歌深窃糞箭岻寂議儉桟膿哈喘。
匯倖咨塀盾裂辛僉凪糞祥頁匯倖噸宥議辛僉?徽頁辛參瓜輝恂掲辛僉栖聞喘?旺音俶勣耽肝脅聞喘盾裂栖資函辛僉峙。和中議箭徨婢幣阻辛僉String才咨塀盾裂辛僉String岻寂議曝艶?
let possibleString: String? = "An optional string." println(possibleString!) // 俶勣妾名催栖資函峙 // 補竃 "An optional string." let assumedString: String! = "An implicitly unwrapped optional string." println(assumedString) // 音俶勣湖名催 // 補竃 "An implicitly unwrapped optional string."低辛參委咨塀盾裂辛僉輝恂匯倖辛參徭強盾裂議辛僉。低勣恂議峪頁蕗苧議扮昨委湖名催慧欺窃侏議潤硫?遇音頁耽肝函峙議辛僉兆忖議潤硫。
廣吭?泌惚低壓咨塀盾裂辛僉短嗤峙議扮昨晦編函峙?氏乾窟塰佩扮危列。才低壓短嗤峙議噸宥辛僉朔中紗匯倖妾名催匯劔。低挽隼辛參委咨塀盾裂辛僉輝恂噸宥辛僉栖登僅万頁倦淫根峙?
if assumedString {
println(assumedString)
}
// 補竃 "An implicitly unwrapped optional string."
低匆辛參壓辛僉鰯協嶄聞喘咨塀盾裂辛僉栖殊臥旺盾裂万議峙?
if let definiteString = assumedString {
println(definiteString)
}
// 補竃 "An implicitly unwrapped optional string."
廣吭?泌惚匯倖延楚岻朔辛嬬延撹nil議三萩音勣聞喘咨塀盾裂辛僉。泌惚低俶勣壓延楚議伏凋巓豚嶄登僅頁倦頁nil議三?萩聞喘噸宥辛僉窃侏。
僅冱
辛僉辛參斑低登僅峙頁倦贋壓?低辛參壓旗鷹嶄單囘仇侃尖峙髪払議秤趨。隼遇?壓蝶乂秤趨和?泌惚峙髪払賜宀峙旺音諾怎蒙協議訳周?低議旗鷹辛嬬旺音俶勣写偬峇佩。宸扮?低辛參壓低議旗鷹嶄乾窟匯倖僅冱?assertion?栖潤崩旗鷹塰佩旺宥狛距編栖孀欺峙髪払議圻咀。聞喘僅冱序佩距編
僅冱氏壓塰佩扮登僅匯倖貸辞訳周頁倦葎true。貫忖中吭房栖傍?僅冱“僅冱”匯倖訳周頁倦葎寔。低辛參聞喘僅冱栖隠屬壓塰佩凪麿旗鷹岻念?蝶乂嶷勣議訳周厮将瓜諾怎。泌惚訳周登僅葎true?旗鷹塰佩氏写偬序佩?泌惚訳周登僅葎false?旗鷹塰佩唯峭?低議哘喘瓜嶮峭。泌惚低議旗鷹壓距編桟廠和乾窟阻匯倖僅冱?曳泌低壓 Xcode 嶄更秀旺塰佩匯倖哘喘?低辛參賠萱仇心欺音栽隈議彜蓑窟伏壓陳戦旺殊臥僅冱瓜乾窟扮低議哘喘議彜蓑。緩翌?僅冱塋俯低現紗匯訳距編佚連。
低辛參聞喘畠蕉assert痕方栖亟匯倖僅冱。?assert痕方勧秘匯倖潤惚葎true賜宀false議燕器塀參式匯訳佚連?輝燕器塀葎false議扮昨宸訳佚連氏瓜?塋升?
let age = -3 assert(age >= 0, "A person's age cannot be less than zero") // 咀葎 age < 0?侭參僅冱氏乾窟壓宸倖箭徨嶄?峪嗤age >= 0葎true議扮昨旗鷹塰佩嘉氏写偬?匆祥頁傍?輝age議峙掲減議扮昨。泌惚age議峙頁減方?祥崧旗鷹嶄椎劔?age >= 0葎false?僅冱瓜乾窟?潤崩哘喘。
僅冱佚連音嬬聞喘忖憲堪峨峙。僅冱佚連辛參福待?祥崧宸劔?
assert(age >= 0)
採扮聞喘僅冱
輝訳周辛嬬葎邪扮聞喘僅冱?徽頁恷嶮匯協勣隠屬訳周葎寔?宸劔低議旗鷹嘉嬬写偬塰佩。僅冱議癖喘秤尚?- 屁方議現奉重云沫哈瓜勧秘匯倖徭協吶現奉重云糞孖?徽頁和炎沫哈峙辛嬬湊弌賜宀湊寄。
- 俶勣公痕方勧秘匯倖峙?徽頁掲隈議峙辛嬬擬崑痕方音嬬屎械峇佩。
- 匯倖辛僉峙孖壓頁nil?徽頁朔中議旗鷹塰佩俶勣匯倖掲nil峙。
廣吭?僅冱辛嬬擬崑低議哘喘嶮峭塰佩?侭參低哘輝徙聾譜柴低議旗鷹栖斑掲隈訳周音氏竃孖。隼遇?壓低議哘喘窟下岻念?嗤扮昨掲隈訳周辛嬬竃孖?宸扮聞喘僅冱辛參酔堀窟孖諒籾。
<貧匯准
和匯准>