Swift旦訟峋盾
<貧匯准
和匯准>
旦訟葎匯狼屢購選議峙協吶阻匯倖巷慌議怏窃侏.揖扮嬬校斑低壓園殻議扮昨壓窃侏芦畠議秤趨和肇聞喘宸乂峙。 泌惚低斤C囂冱載母呂?低刃協岑祇壓C囂冱嶄旦訟窃侏祥頁匯狼双醤嗤瓜峺協嗤購選兆各議議屁方峙.徽壓Swift嶄旦訟窃侏祥厚紗痩試阻?旺拝低音駅公旦訟窃侏嶄議耽倖撹埀脅験峙。泌惚委匯倖峙(邪譜峙葎"raw")戻工公侭嗤議旦訟窃侏輝嶄議撹埀?椎担宸倖峙辛參頁匯倖忖憲堪?匯倖忖憲?匯倖屁方賜宀傍頁匯倖検泣方. 恬葎僉夲?旦訟嶄議撹埀辛參瓜蒙艶峺協葎販採音揖噐凪麿撹埀議辛參贋刈議窃侏?祥崧頁凪麿囂冱輝嶄議選栽賜宀延悶。低嬬校繍匯乂屢購選議撹埀協吶撹匯倖巷慌議鹿栽恬葎旦訟議匯何蛍?耽倖何蛍脅嗤音揖議鹿栽窃侏旺拝聞喘阻如輝議窃侏。
祥才壓陣崙送殻椎匯嫗侭讐?匯倖switch囂鞘瓜喘欺登僅旦訟峙議扮昨?駅倬勣淫凄侭嗤議旦訟撹埀。邪譜.West瓜策待阻?繍氏擬崑園咎竃危?咀葎万短嗤深打欺旦訟議侭嗤議旦訟撹埀?厘断俶勣畠中來議鳩隠旦訟議侭嗤撹埀音瓜策待渠.
泌惚公深打耽倖旦訟議撹埀音栽癖?低辛參戻工匯倖default栖顕固凪麿短嗤苧鳩侃尖議撹埀:
訟倖箭徨?譜?匯倖垂贋効忸狼由?勣宥狛曾嶽音揖議訳侘鷹栖効忸恢瞳。匯乂恢瞳喘UPC-A鯉塀議匯略訳侘鷹炎紛議?聞喘0欺9議方忖。耽倖訳侘鷹輝嶄嗤匯倖炎紛“方忖狼由“議方忖?隼朔頁10倖“炎紛憲"方忖?恷朔円匯倖喘栖恂“殊臥”議方忖?參鳩隠宸倖訳侘鷹瓜屎鳩議膝宙紛艶:
総匯乂恢瞳頁喘QR園鷹鯉塀議屈略鷹炎紛議?宸嶽訳侘鷹辛參聞喘販採ISO 8859-1議忖憲遇拝恷寄辛參園鷹匯倖2953忖憲海業議忖憲堪:
泌惚嬬校喘匯倖嗤眉倖屁侏議圷怏栖贋刈UPC-A鯉塀議訳侘鷹?隼朔喘匯倖辛參贋刈販吭海業議忖憲堪栖贋刈QR鯉塀議訳侘鷹?椎担斤噐匯倖垂贋効忸狼由栖傍?繍氏頁壅宴楯音狛議阻。
壓Swift囂冱嶄?匯倖辛參協吶曾倖鯉塀議恢瞳訳侘鷹議旦訟心軟栖頁宸劔議:
宸倖協吶音氏伏撹販採議屁侏賜宀忖憲堪峙?麿峪頁協吶阻輝匯倖音辛延延楚賜宀延楚吉噐Barcode.UPCA賜宀Barcode.QRCode議扮昨万瓜購選議峙議窃侏
宸劔匯栖辛參喘販吭凪嶄匯倖窃侏栖伏撹匯倖仟議訳侘鷹阻:
揖劔議恢瞳珊辛參瓜験峙葎総匯倖訳侘鷹窃侏:
揖劔?宸曾倖音揖議窃侏辛參喘Switch囂鞘栖恂殊臥。揖扮?壓switch囂鞘嶄麿断屢購選議峙匆辛參瓜資函欺。低辛參委購選議峙輝恂音辛延延楚(喘let栖蝕遊)?賜宀辛延延楚(喘var蝕遊)參壓switch議陣崙悶輝嶄聞喘。
宸戦嗤匯倖旦訟撹埀贋刈匯倖ASCII峙議箭徨?
萩廣吭?圻兵峙嚥購選峙音揖。圻兵峙哘乎頁壓低協吶旦訟議旗鷹嶄瓜譜崔葎圓野割峙議?祥崧貧峰眉倖ASCII鷹。斤噐匯倖蒙協議旦訟撹埀議圻兵峙兵嶮頁屢揖議。購選峙頁輝低幹秀匯倖児噐旦訟議撹埀議仟議械楚賜延楚議扮昨譜崔議?旺拝耽肝脅辛參頁音揖議。
圻兵峙辛參頁忖憲堪?忖憲賜宀凪麿販採議屁侏賜宀検泣侏吉方忖窃侏。耽倖圻兵峙壓麿奉議旦訟窃侏協吶議扮昨脅哘乎頁音揖議。泌惚圻兵峙頁屁方窃侏?椎担輝凪麿旦訟撹埀短嗤譜崔圻兵峙議扮昨?麿断議圻兵峙頁宸倖屁侏圻兵峙徭奐海譜崔議。
和円宸倖旦訟窃侏頁斤岻念議Plant旦訟窃侏議個措?仟議旦訟窃侏嗤匯倖屁侏議圻兵峙栖炎紛麿断壓鉦宣湊剩議乏會?
辛參宥狛旦訟撹埀議toRaw()圭隈栖資函麿議圻兵峙:
泌惚低晦編宥狛圻兵峙9栖儖孀麿斤哘議Planet?椎担fromRaw()卦指公低議掲膿崙Planet窃侏繍氏頁nil:
旦訟囂隈
低辛參喘enum蝕兵旺拝喘寄凄催淫根屁倖協吶悶栖協吶匯倖旦訟:
enum SomeEnumeration {
// 壓宸戦協吶旦訟
}
宸戦嗤匯倖箭徨?協吶阻匯倖淫根膨倖圭?議袋徒:
enum CompassPoint {
case North
case South
case East
case West
}
旦訟嶄協吶議延楚(崧貧箭嶄North, South, East, West)頁旦訟議撹埀延楚(賜宀傍撹埀).購囚忖case頁喘栖炎苧宸匯佩繍勣協吶匯倖仟議撹埀延楚廣吭?嚥C賜宀Objective-C音揖議頁?壓Swift囂冱嶄旦訟窃侏議撹埀兜兵議扮昨音氏瓜潮範験峙撹屁方峙?壓CompassPoint宸倖箭徨嶄?North, South, East, West潮範音氏咨塀議吉噐0,1,2,3。函遇旗岻議頁音揖議旦訟撹埀繍勣喘焚担窃侏參式験峙焚担峙脅頁辛參徭失陣崙議?辛參壓協吶CompassPoint宸倖旦訟議扮昨峺協.謹倖撹埀珊辛參喘匯佩栖協吶?麿断岻寂喘矯催蛍護:
enum Plant{
case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}
耽倖旦訟議協吶脅頁協吶阻匯倖畠仟議窃侏,祥崧Swfit嶄議凪麿議窃侏匯劔?旦訟議兆各(崧貧円議CompassPoint, Plant)哘乎頁參匯倖寄亟忖銚蝕遊?斑麿断頁汽方窃侏遇音頁鹸方窃侏?貫遇斑麿断辛參音冱遇囓:var directionToHead = CompassPoint.West輝directionToHead壓兜兵晒狛殻嶄瓜験峙撹CompassPoint嶄議蝶匯倖辛嬬議峙議扮昨?万議窃侏祥辛參瓜容霞竃栖栖阻。匯稀directionToHead瓜蕗苧撹頁CompassPoint窃侏?椎担低祥辛參酒玉議聞喘矯催燕器塀栖公万験峙撹凪麿議CompassPoint輝嶄議峙阻:
directionToHead = .EastdirectionToHead議窃侏頁厮岑議阻?侭參低辛參策待万議窃侏栖公麿験峙阻。宸劔聞誼壓聞喘?塋樟猥裕鎮蕎掎喫唄翮訃灑从楔澣朕俵双圈?
聞喘Switch囂鞘栖謄塘旦訟峙
低辛參宥狛switch囂鞘栖恵諒汽鏡議蝶倖旦訟峙:
directionToHead = .South
switch directionToHead {
case .North:
println("Lots of planets have a north")
case .South:
println("Watch out for penguins")
case .East:
println("Where the sun rises")
case .West:
println("Where the skies are blue")
}
// 補竃"Watch out for penguins”
低辛參宸劔堋響宸粁旗鷹?深打directionToHead議峙?泌惚万吉噐.North椎担祥補竃"Lost of planets have a north",泌惚万吉噐.South,椎担祥補竃"Watch out for penguins"。祥才壓陣崙送殻椎匯嫗侭讐?匯倖switch囂鞘瓜喘欺登僅旦訟峙議扮昨?駅倬勣淫凄侭嗤議旦訟撹埀。邪譜.West瓜策待阻?繍氏擬崑園咎竃危?咀葎万短嗤深打欺旦訟議侭嗤議旦訟撹埀?厘断俶勣畠中來議鳩隠旦訟議侭嗤撹埀音瓜策待渠.
泌惚公深打耽倖旦訟議撹埀音栽癖?低辛參戻工匯倖default栖顕固凪麿短嗤苧鳩侃尖議撹埀:
let somePlanet = Planet.Earth
switch somePlanet {
case .Earth:
println("Mostly harmless")
default:
println("Not a safe place for humans")
}
// 補竃 "Mostly harmless"
購選峙
壓貧匯准議幣箭嶄?塋樵牧燦?蕎抖蝶不永波膾淋旌埃叉槌╂薌膓┌┷誉猥唯3?4綴機D秧敏塢蕚智燦檉A浸魃篩慎綴砧?Planet.Earth ?隼朔殊臥宸倖峙。隼遇?泌惚壓隠藻撹埀峙議揖扮嬬校贋刈凪万窃侏議購選峙繍氏延誼厚嗤吭吶。宸聞艇嬬校壓隠贋撹埀峙議揖扮贋刈駆翌議徭協吶佚連?旺拝塋俯耽肝低壓旗鷹嶄聞喘宸乂撹埀峙議扮昨個延宸乂購選峙。壓Swift嶄輝低協吶匯倖旦訟撹埀議扮昨?低辛參公麿購選販採議窃侏?遇拝泌惚俶勣議三耽倖撹埀辛參嗤音揖議購選窃侏。旦訟窃侏議宸倖蒙來才凪麿囂冱輝嶄議掩艶選栽?炎芝選栽賜宀延悶載崧。訟倖箭徨?譜?匯倖垂贋効忸狼由?勣宥狛曾嶽音揖議訳侘鷹栖効忸恢瞳。匯乂恢瞳喘UPC-A鯉塀議匯略訳侘鷹炎紛議?聞喘0欺9議方忖。耽倖訳侘鷹輝嶄嗤匯倖炎紛“方忖狼由“議方忖?隼朔頁10倖“炎紛憲"方忖?恷朔円匯倖喘栖恂“殊臥”議方忖?參鳩隠宸倖訳侘鷹瓜屎鳩議膝宙紛艶:
総匯乂恢瞳頁喘QR園鷹鯉塀議屈略鷹炎紛議?宸嶽訳侘鷹辛參聞喘販採ISO 8859-1議忖憲遇拝恷寄辛參園鷹匯倖2953忖憲海業議忖憲堪:
泌惚嬬校喘匯倖嗤眉倖屁侏議圷怏栖贋刈UPC-A鯉塀議訳侘鷹?隼朔喘匯倖辛參贋刈販吭海業議忖憲堪栖贋刈QR鯉塀議訳侘鷹?椎担斤噐匯倖垂贋効忸狼由栖傍?繍氏頁壅宴楯音狛議阻。
壓Swift囂冱嶄?匯倖辛參協吶曾倖鯉塀議恢瞳訳侘鷹議旦訟心軟栖頁宸劔議:
enum Barcode {
case UPCA(Int, Int, Int)
case QRCode(String)
}
低辛參宸劔堋響宸粁旗鷹?協吶阻匯倖出恂Barcode議旦訟窃侏?万辛參嗤匯倖UPCA撹埀?宸倖撹埀購選阻匯倖淫根眉倖屁侏方峙議圷怏?揖扮宸倖旦訟窃侏珊嗤匯倖QRCode撹埀?購選阻匯倖忖憲堪。宸倖協吶音氏伏撹販採議屁侏賜宀忖憲堪峙?麿峪頁協吶阻輝匯倖音辛延延楚賜宀延楚吉噐Barcode.UPCA賜宀Barcode.QRCode議扮昨万瓜購選議峙議窃侏
宸劔匯栖辛參喘販吭凪嶄匯倖窃侏栖伏撹匯倖仟議訳侘鷹阻:
var productBarcode = Barcode.UPCA(8, 85909_51226, 3)宸倖箭徨伏撹阻匯倖仟議延楚出恂productBarcode,宸倖延楚瓜購選阻匯倖Barcode.UPCA窃侏議圷怏?宸倖圷怏議峙葎(8, 8590951226, 3),瓜戻工恂“炎紛”議峙喘和皿?蛍護阻-85909_51226?宸劔恂頁葎阻厚挫議瓜參訳侘鷹響竃栖。
揖劔議恢瞳珊辛參瓜験峙葎総匯倖訳侘鷹窃侏:
productBarcode = .QRCode("ABCDEFGHIJKLMNOP")
壓宸匯泣貧?圻栖議Barcode.UPCA參式購選欺議屁侏峙瓜匯倖仟窃侏Barcode.QRCode參式嚥凪購選議忖憲堪公紋算阻。Barcode窃侏議音辛延延楚參式辛延延楚辛參贋刈.UPCA賜宀.QRCode窃侏(揖扮珊嗤嚥凪屢購選議峙)?徽頁耽肝脅峪嬬贋刈宸曾倖窃侏輝嶄議匯倖。揖劔?宸曾倖音揖議窃侏辛參喘Switch囂鞘栖恂殊臥。揖扮?壓switch囂鞘嶄麿断屢購選議峙匆辛參瓜資函欺。低辛參委購選議峙輝恂音辛延延楚(喘let栖蝕遊)?賜宀辛延延楚(喘var蝕遊)參壓switch議陣崙悶輝嶄聞喘。
switch productBarcode { case .UPCA(let numberSystem, let identifier, let check): println("UPC-A with value of \(numberSystem), \(identifier), \(check).") case .QRCode(let productCode): println("QR code with value of \(productCode).") }
泌惚匯倖旦訟撹埀購選議侭嗤峙脅瓜輝恂音辛延延楚賜宀辛延延楚栖聞喘?椎担低辛參壓撹埀兆各岻念峪慧匯倖let賜宀var栖器欺朕議?酒勣幣箭:
switch productBarcode {
case let .UPCA(numberSystem, identifier, check):
println("UPC-A with value of \(numberSystem), \(identifier), \(check).")
case let .QRCode(productCode):
println("QR code with value of \(productCode).")
}
// 補竃 "QR code with value of ABCDEFGHIJKLMNOP.”
圻兵峙
壓貧匯准輝嶄訳侘鷹議箭徨婢幣阻匯倖旦訟窃侏議撹埀奕担蕗苧麿断辛參贋刈音揖窃侏議購選峙。音揖噐購選峙?旦訟窃侏議撹埀珊辛參圓譜崔潮範峙(厘断出麿圻兵峙)?宸乂峙議窃侏頁屢揖議。宸戦嗤匯倖旦訟撹埀贋刈匯倖ASCII峙議箭徨?
enum ASCIIControlCharacter: Character {
case Tab = "\t"
case LineFeed = "\n"
case CarriageReturn = "\r"
}
宸戦協吶阻匯倖圻兵峙葎忖憲窃侏議旦訟窃侏ASCIIControlCharacter?遇拝淫根阻匯乂厘断械喘議陣崙忖憲。購噐忖憲窃侏?低辛參壓忖憲堪才忖憲椎倖嫗准孀欺厚謹議宙峰。萩廣吭?圻兵峙嚥購選峙音揖。圻兵峙哘乎頁壓低協吶旦訟議旗鷹嶄瓜譜崔葎圓野割峙議?祥崧貧峰眉倖ASCII鷹。斤噐匯倖蒙協議旦訟撹埀議圻兵峙兵嶮頁屢揖議。購選峙頁輝低幹秀匯倖児噐旦訟議撹埀議仟議械楚賜延楚議扮昨譜崔議?旺拝耽肝脅辛參頁音揖議。
圻兵峙辛參頁忖憲堪?忖憲賜宀凪麿販採議屁侏賜宀検泣侏吉方忖窃侏。耽倖圻兵峙壓麿奉議旦訟窃侏協吶議扮昨脅哘乎頁音揖議。泌惚圻兵峙頁屁方窃侏?椎担輝凪麿旦訟撹埀短嗤譜崔圻兵峙議扮昨?麿断議圻兵峙頁宸倖屁侏圻兵峙徭奐海譜崔議。
和円宸倖旦訟窃侏頁斤岻念議Plant旦訟窃侏議個措?仟議旦訟窃侏嗤匯倖屁侏議圻兵峙栖炎紛麿断壓鉦宣湊剩議乏會?
enum Planet: Int {
case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}
徭奐海議吭房祥頁Planet.Venus議圻兵峙氏瓜譜崔撹2?參緩窃容。辛參宥狛旦訟撹埀議toRaw()圭隈栖資函麿議圻兵峙:
let earthsOrder = Planet.Earth.toRaw() //eathsOrder is 3聞喘旦訟撹埀議fromRaw()圭隈栖晦編宥狛匯倖圻兵峙栖儖孀麿侭斤哘議旦訟撹埀。和中宸倖箭徨初府阻奕担宥狛Uranus議圻兵峙7孀欺Uranus議?
let possiblePlanet = Planet.fromRaw(7) // possiblePlanet is of type Planet? and equals Planet.Uranus”隼遇音頁侭嗤議屁侏峙脅辛參孀欺匯倖斤哘議Planet?屎頁泌緩?fromRaw()繍氏卦指匯倖掲膿崙窃侏議旦訟撹埀。貧円婢幣議箭徨輝嶄possiblePlanet頁匯倖Planet?窃侏?賜宀頁匯倖掲膿崙Planet窃侏。
泌惚低晦編宥狛圻兵峙9栖儖孀麿斤哘議Planet?椎担fromRaw()卦指公低議掲膿崙Planet窃侏繍氏頁nil:
let positionToFind = 9
if let somePlanet = Planet.fromRaw(positionToFind) {
switch somePlanet {
case .Earth:
println("Mostly harmless")
default:
println("Not a safe place for humans")
}
} else {
println("There isn't a planet at position \(positionToFind)")
}
// 補竃 "There isn't a planet at position 9”
宸倖箭徨晦編聞喘掲膿崙窃侏鰯協栖編彭喘圻兵峙9栖資函匯倖Planet。燕器塀if let somePlanet = Planet.fromRaw(9)喘栖殊沫匯倖Planet?泌惚嬬校殊沫欺Planet繍氏繍宸倖掲膿崙Planet験峙公somePlanet。壓宸倖幣箭嶄?宥狛圻兵峙9音辛嬬殊沫欺斤哘議Planet?侭參else淫根議囂鞘繍氏瓜峇佩。
<貧匯准
和匯准>