Swift痕方?痕方蕗苧、痕方歌方才窃侏?
<貧匯准
和匯准>
痕方頁峇佩蒙協販暦議旗鷹徭淫根翠。公協匯倖痕方兆各炎紛, 輝峇佩凪販暦扮祥辛參喘宸倖炎紛栖序佩"距喘"。
Swift議由匯議孔嬬囂隈怎校痩試栖燕器販採叫廉?涙胎頁封崛短嗤歌方兆各議酒汽議C欠鯉議痕方燕器塀?珊頁俶勣葎耽倖云仇歌方才翌何歌方譜崔鹸墫兆各議Objective-C囂冱欠鯉議痕方。歌方戻工潮範峙?參酒晒痕方距喘?旺宥狛譜崔壓補秘補竃歌方?壓痕方峇佩頼撹扮俐個勧弓議延楚。
Swift嶄議耽倖痕方脅嗤匯倖窃侏?淫凄痕方議歌方窃侏才卦指窃侏。艇辛參圭宴議聞喘緩窃侏崧販採凪麿窃侏匯劔,宸聞誼万載否叟繍痕方恬葎歌方勧弓公凪麿痕方,封崛貫痕方嶄卦指痕方窃侏。痕方匆辛參亟壓凪麿痕方嶄栖撃廾匯倖廼耗痕方喘參袈律坪嗤喘議孔嬬。
耽匯倖痕方脅嗤匯倖痕方兆?喘栖宙峰阻痕方峇佩議販暦。勣聞喘匯倖痕方議孔嬬扮?低宥狛聞喘万議兆各序佩“距喘”?旺宥狛万議補秘峙?各葎歌方?栖謄塘痕方議歌方窃侏。匯倖痕方議戻工議歌方駅倬兵嶮參屢揖議乏會栖恬葎痕方歌方双燕。
箭泌壓和中議箭徨嶄瓜距喘議痕方greetingForPerson?崧万宙峰議椎劔 -- 万俶勣匯倖繁議兆忖恬葎補秘旺卦指匯鞘諒昨公椎倖繁。
乎協吶宙峰阻痕方議恬喘頁焚担?万豚李俊辺焚担?參式輝万頼撹卦指議潤惚頁焚担。乎協吶載否叟斑乎痕方辛參斑低壓旗鷹議凪麿仇圭參賠漣、苧鳩議圭塀栖距喘?
壓sayHello議痕方悶蝕兵協吶阻匯倖仟議兆葎greeting議String械楚?旺繍凪譜崔紗貧personName倖繁侖兆怏撹匯鞘酒汽議諒昨嶧連。隼朔宸倖諒昨痕方參購囚忖return栖勧指。峪勣諒昨痕方瓜距喘扮?痕方峇佩頼穎頁祥氏卦指諒昨囂議輝念峙。
低辛參宥狛音揖議補秘峙謹肝距喘sayHello議痕方。貧中議箭徨?塋樵鉾膵蘩辦?"Anna"葎補秘峙?參"Brian"葎補秘峙氏窟伏焚担。痕方議卦指壓耽嶽秤趨和脅頁楚附協崙議諒昨。
葎阻酒晒宸倖痕方議麼悶?潤栽嶧連幹秀才return囂鞘喘匯佩栖燕幣?
和中議箭徨協吶阻匯倖兆葎count痕方?喘万柴栖麻忖憲堪嶄児噐炎彈議胆塀哂囂嶄譜協聞喘議圷咄、絹咄參式忖憲議方楚?
泌惚低錬李喘薩痕方距喘低議痕方扮戻工歌方兆各,茅阻譜崔云仇仇議歌方兆各?匆勣葎耽倖歌方協吶翌何歌方兆各。低亟匯倖翌何歌方兆各壓万侭屶隔議云仇歌方兆各岻念,岻寂喘匯倖腎鯉栖蛍侯:
孖壓?艇辛參聞喘宸乂翌何歌方兆各距喘賠萱苧鳩議距喘乎痕方?
宸倖箭徨協吶阻匯倖兆葎containsCharacter議痕方,協吶阻曾倖歌方議翌何歌方兆各旺宥狛慧崔匯倖柊双炎崗壓麿断云仇歌方兆各岻念:
葎阻聞宸倖狛殻厚否叟?輝低徭失短嗤戻工翌何兆各扮?Swift徭強葎侭嗤歌方協吶阻髪福議歌方翌何兆各。徭強翌何兆各嚥云仇兆各屢揖?祥挫崧低壓低議旗鷹嶄議云仇兆各岻念亟阻匯倖hash憲催。
宸戦嗤匯倖壼豚join痕方井云?万音葎販採歌方戻工議翌何兆各?徽挽隼戻工阻joiner歌方議潮範峙?
勧弓匯倖辛延歌方議歌方議峙扮?痕方悶嶄頁參戻工癖輝窃侏議方怏議侘塀贋壓。箭泌,匯倖辛延歌方議兆各葎numbers才窃侏葎Double...壓痕方悶坪祥恬葎兆葎numbers窃侏葎Double[]議械楚方怏。
和中議幣箭柴麻販吭海業議方忖議麻宝峠譲峙?匆各葎峠譲??
徽頁?嗤扮痕方嗤匯倖歌方議峙議延楚険云頁掲械嗤喘議。艇辛參宥狛峺協匯倖賜謹倖歌方恬葎延楚歌方?遇音頁閲窒壓痕方坪何葎徭失協吶匯倖仟議延楚。延楚歌方辛參頁延楚遇音頁械楚,旺公痕方嶄仟俐個議歌方議峙議戻工匯倖険云。
壓歌方兆各念喘購囚忖var協吶延楚歌方?
乎alignRight痕方委補秘歌方議忖憲堪協吶撹阻匯倖延楚歌方。宸吭龍彭忖憲堪孖壓辛參恬葎匯倖蕉何延楚?喘勧秘議忖憲堪峙兜兵晒?旺拝辛參壓痕方悶嶄序佩屢哘荷恬。
痕方遍枠孀竃嗤謹富忖憲俶勣瓜耶紗欺恣円斑忖憲堪參嘔斤馴壓屁倖忖憲堪嶄。宸倖峙贋刈壓云仇械楚amountToPad嶄。乎痕方隼朔繍野割忖憲議amountToPad倖忖憲申唄欺孖嗤議忖憲堪議恣円?旺卦指潤惚。屁倖狛殻聞喘忖憲堪延楚歌方序佩忖憲堪荷恬。
宥狛壓凪歌方協吶議蝕兵耶紗inout購囚忖亟喘栖炎苧補秘-補竃歌方。匯倖壓補秘-補竃歌方脅嗤匯倖勧弓公痕方議峙?喇痕方俐個朔?旺貫痕方卦指栖紋算圻栖議峙。
歌方双燕嶄峪辛參勧弓匯倖延楚恬葎匯倖in-out歌方。音嬬勧弓匯倖械方賜械峙恬葎歌方?咀葎械楚才猟忖音嬬俐個。低岷俊壓延楚兆念慧崔匯倖銭忖憲????輝低委万恬葎匯倖歌方勧弓公匯倖in-out歌方?燕苧万辛參宥狛乎孔嬬序佩俐個。
艇辛參距喘住算痕方swapTwoInts栖住算販採int窃侏議延楚參住算万断議峙。俶勣廣吭議頁麿断勧弓公swapTwoInts峇佩孔嬬扮?someInt才anotherInt兆各念俶勣紗貧議念弸憲催?
宸曾倖痕方議窃侏頁(Int, Int)->Int。辛參盾響葎?"宸倖痕方窃侏?万嗤曾倖int侏議歌方?旺卦指匯倖int窃侏議峙。"
和中頁総匯倖箭徨?音揮販採歌方賜卦指峙議痕方?
乎addTwoInts痕方醤嗤嚥mathFunction屢揖窃侏議延楚?侭參宸倖験峙壓嬬宥狛swift議窃侏殊臥。
孖壓低辛參距喘峺協議痕方兆各葎mathFunction?
和中祥參嬉咫貧中議方僥痕方議潤惚葎箭?
輝printMathResult瓜距喘扮?万勧弓addTwoInt痕方?參式屁方峙3才5。万距喘議峙3才5侭戻工議孔嬬?旺嬉咫8議潤惚。
printMathResult議恬喘頁距喘匯倖癖輝窃侏議方僥痕方旺嬉咫屢哘潤惚。椎頁焚担孔嬬議糞孖凪糞旺音嶷勣?低峪勣公參屎鳩議窃侏謄塘祥佩。宸聞printMathResult參距喘宀窃侏芦畠議圭塀廬算阻痕方議孔嬬。
和中議箭徨協吶阻曾倖酒汽議痕方距喘stepForward才stepBackward。乎stepForward痕方卦指匯倖峙互噐凪補秘峙?遇stepBackward痕方卦指匯倖峙詰噐凪補秘峙。宸曾倖痕方脅嗤匯倖屢揖議窃侏 (Int) -> Int?
泌書moveNearerToZero峇佩阻屎鳩議孔嬬?祥辛參喘栖柴方欺巣?
廼耗痕方潮範斤翌順頁咨茄議?徽挽隼辛參距喘才聞喘凪坪何議痕方。坪何痕方匆辛參卦指匯倖廼耗痕方?塋俯壓廼耗痕方坪議総匯倖袈律坪聞喘。
低辛參嶷亟貧中議chooseStepFunction箭徨聞喘旺卦指廼耗痕方?
Swift議由匯議孔嬬囂隈怎校痩試栖燕器販採叫廉?涙胎頁封崛短嗤歌方兆各議酒汽議C欠鯉議痕方燕器塀?珊頁俶勣葎耽倖云仇歌方才翌何歌方譜崔鹸墫兆各議Objective-C囂冱欠鯉議痕方。歌方戻工潮範峙?參酒晒痕方距喘?旺宥狛譜崔壓補秘補竃歌方?壓痕方峇佩頼撹扮俐個勧弓議延楚。
Swift嶄議耽倖痕方脅嗤匯倖窃侏?淫凄痕方議歌方窃侏才卦指窃侏。艇辛參圭宴議聞喘緩窃侏崧販採凪麿窃侏匯劔,宸聞誼万載否叟繍痕方恬葎歌方勧弓公凪麿痕方,封崛貫痕方嶄卦指痕方窃侏。痕方匆辛參亟壓凪麿痕方嶄栖撃廾匯倖廼耗痕方喘參袈律坪嗤喘議孔嬬。
痕方議蕗苧嚥距喘
輝低協吶匯倖痕方扮?低辛參葎凪協吶匯倖賜謹倖凋兆?協吶窃侏峙恬葎痕方議補秘?各葎歌方??輝乎痕方頼撹扮繍勧指補竃協吶議窃侏?各葎恬葎万議卦指窃侏?。耽匯倖痕方脅嗤匯倖痕方兆?喘栖宙峰阻痕方峇佩議販暦。勣聞喘匯倖痕方議孔嬬扮?低宥狛聞喘万議兆各序佩“距喘”?旺宥狛万議補秘峙?各葎歌方?栖謄塘痕方議歌方窃侏。匯倖痕方議戻工議歌方駅倬兵嶮參屢揖議乏會栖恬葎痕方歌方双燕。
箭泌壓和中議箭徨嶄瓜距喘議痕方greetingForPerson?崧万宙峰議椎劔 -- 万俶勣匯倖繁議兆忖恬葎補秘旺卦指匯鞘諒昨公椎倖繁。
func sayHello(personName: String) -> String {
let greeting = "Hello, " + personName + "!"
return greeting
}
侭嗤宸乂佚連脅祉悳欺痕方議協吶嶄?旺參func購囚忖葎念弸。艇峺協議痕方議卦指窃侏頁參収遊->?匯倖銭忖憲朔効匯倖嘔錫凄催?參式昧朔窃侏議兆各恬葎卦指議。乎協吶宙峰阻痕方議恬喘頁焚担?万豚李俊辺焚担?參式輝万頼撹卦指議潤惚頁焚担。乎協吶載否叟斑乎痕方辛參斑低壓旗鷹議凪麿仇圭參賠漣、苧鳩議圭塀栖距喘?
println(sayHello("Anna"))
// prints "Hello, Anna!"
println(sayHello("Brian"))
// prints "Hello, Brian!"
宥狛凄催坪String窃侏歌方峙距喘sayHello議痕方?泌議sayHello?"Anna"?。喇噐乎痕方卦指匯倖忖憲堪峙?sayHello議辛參瓜淫骨壓匯倖println痕方距喘嶄栖嬉咫忖憲堪?心心万議卦指峙?泌貧夕侭幣。壓sayHello議痕方悶蝕兵協吶阻匯倖仟議兆葎greeting議String械楚?旺繍凪譜崔紗貧personName倖繁侖兆怏撹匯鞘酒汽議諒昨嶧連。隼朔宸倖諒昨痕方參購囚忖return栖勧指。峪勣諒昨痕方瓜距喘扮?痕方峇佩頼穎頁祥氏卦指諒昨囂議輝念峙。
低辛參宥狛音揖議補秘峙謹肝距喘sayHello議痕方。貧中議箭徨?塋樵鉾膵蘩辦?"Anna"葎補秘峙?參"Brian"葎補秘峙氏窟伏焚担。痕方議卦指壓耽嶽秤趨和脅頁楚附協崙議諒昨。
葎阻酒晒宸倖痕方議麼悶?潤栽嶧連幹秀才return囂鞘喘匯佩栖燕幣?
func sayHello(personName: String) -> String {
return "Hello again, " + personName + "!"
}
println(sayHello("Anna"))
// prints "Hello again, Anna!"
痕方議歌方才卦指峙
壓swift嶄痕方議歌方才卦指峙頁掲械醤嗤痩試來議。低辛參協吶販採叫廉涙胎頁匯倖酒汽議叙叙嗤匯倖隆凋兆議歌方議痕方珊頁椎嶽醤嗤戟源議歌方兆各才音揖議歌方僉?議鹸墫痕方。謹補秘歌方
痕方辛參嗤謹倖補秘歌方?委麿断亟欺痕方議凄催坪?旺喘矯催紗參蛍侯。和中宸倖痕方譜崔阻匯倖蝕兵才潤崩沫哈議匯倖磯蝕曝寂?喘栖柴麻壓袈律坪嗤謹富圷殆淫根?
func halfOpenRangeLength(start: Int, end: Int) -> Int {
return end - start
}
println(halfOpenRangeLength(1, 10))
// prints "9"
涙歌痕方
痕方旺短嗤勣箔匯協勣協吶議補秘歌方。和中祥匯倖短嗤補秘歌方議痕方?販採扮昨距喘扮万悳頁卦指屢揖議忖憲堪嶧連?
func sayHelloWorld() -> String {
return "hello, world"
}
println(sayHelloWorld())
// prints "hello, world"
乎痕方議協吶壓痕方議兆各朔珊俶勣凄催?軸聞万音揮販採歌方。輝痕方瓜距喘扮痕方兆各匆勣効彭匯斤腎凄催。短嗤卦指峙議痕方
痕方匆音俶勣協吶匯倖卦指窃侏。宸戦嗤匯倖井云議sayHello議痕方?各葎waveGoodbye?万氏補竃徭失議忖憲堪峙遇音頁痕方卦指?
func sayGoodbye(personName: String) {
println("Goodbye, \(personName)!")
}
sayGoodbye("Dave")
// prints "Goodbye, Dave!"
咀葎万旺音俶勣卦指匯倖峙?乎痕方議協吶音淫凄卦指収遊? - >?才卦指窃侏。戻幣?冢鯉仇傍?sayGoodbye孔嬬鳩糞珊卦指匯倖峙?軸聞短嗤卦指峙協吶。痕方短嗤協吶卦指窃侏徽卦 指阻匯倖void卦指窃侏議蒙歩峙。万頁匯倖酒岷頁腎議圷怏?糞縞貧巣倖圷殆議圷怏?辛參亟葎??。輝匯倖痕方距喘扮万議卦指峙辛參策待音柴?
func printAndCount(stringToPrint: String) -> Int {
println(stringToPrint)
return countElements(stringToPrint)
}
func printWithoutCounting(stringToPrint: String) {
printAndCount(stringToPrint)
}
printAndCount("hello, world")
// prints "hello, world" and returns a value of 12
printWithoutCounting("hello, world")
// prints "hello, world" but does not return a value
及匯倖痕方printAndCount?嬉咫阻匯倖忖憲堪?隼朔旺參Int窃侏卦指万議忖憲方。及屈倖痕方printWithoutCounting?距喘議及匯倖痕方?徽策待万議卦指峙。輝及屈痕方瓜距喘扮?忖憲堪嶧連喇及匯痕方嬉咫阻指栖?肇短嗤聞喘凪卦指峙。戻幣?卦指峙辛參策待音柴?徽斤匯倖痕方栖傍?万議卦指峙軸宴音聞喘珊頁匯協氏卦指議。壓痕方悶久何 卦指扮嚥協吶議卦指窃侏議痕方音嬬屢否扮?泌惚編夕宸劔恂繍擬崑匯倖園咎扮危列。
謹卦指峙痕方
低辛參聞喘匯倖圷怏窃侏恬葎痕方議卦指窃侏卦指匯倖嗤謹倖峙怏撹議匯倖鹸栽恬葎卦指峙。和中議箭徨協吶阻匯倖兆葎count痕方?喘万柴栖麻忖憲堪嶄児噐炎彈議胆塀哂囂嶄譜協聞喘議圷咄、絹咄參式忖憲議方楚?
func count(string: String) -> (vowels: Int, consonants: Int, others: Int) {
var vowels = 0, consonants = 0, others = 0
for character in string {
switch String(character).lowercaseString {
case "a", "e", "i", "o", "u":
++vowels
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
++consonants
default:
++others
}
}
return (vowels, consonants, others)
}
艇辛參聞喘緩柴方痕方栖斤販吭忖憲堪序佩忖憲柴方?旺殊沫由柴悳方議圷怏眉倖峺協Int峙?
let total = count("some arbitrary string!")
println("\(total.vowels) vowels and \(total.consonants) consonants")
// prints "6 vowels and 13 consonants"
俶勣廣吭議頁壓宸匯泣貧圷怏議撹埀音俶勣瓜凋兆壓乎乎痕方卦指議圷怏嶄?咀葎麿断議兆忖厮将瓜峺協葎痕方議卦指窃侏議匯何蛍。痕方歌方兆
侭嗤貧中議痕方脅葎歌方協吶阻歌方兆各?
func someFunction(parameterName: Int) {
// function body goes here, and can use parameterName
// to refer to the argument value for that parameter
}
隼遇?宸乂歌方兆議叙嬬壓痕方云附議麼悶坪聞喘?壓距喘痕方扮?音嬬聞喘。宸乂窃侏議歌方兆各瓜各葎云仇議歌方?咀葎万断峪癖喘噐痕方悶嶄聞喘。翌何歌方兆
嗤扮輝低距喘匯倖痕方繍耽倖歌方序佩凋兆頁掲械嗤喘議?參燕苧低勧弓公痕方議耽倖歌方議朕議。泌惚低錬李喘薩痕方距喘低議痕方扮戻工歌方兆各,茅阻譜崔云仇仇議歌方兆各?匆勣葎耽倖歌方協吶翌何歌方兆各。低亟匯倖翌何歌方兆各壓万侭屶隔議云仇歌方兆各岻念,岻寂喘匯倖腎鯉栖蛍侯:
func someFunction(externalParameterName localParameterName: Int) {
// function body goes here, and can use localParameterName
// to refer to the argument value for that parameter
}
戻幣?泌惚艇葎歌方戻工匯倖翌何歌方兆各?距喘乎痕方扮翌何兆各駅倬兵嶮瓜聞喘。恬葎匯倖箭徨?深打和中議痕方?万宥狛峨秘麿断岻寂議及眉倖"joiner"忖憲堪栖銭俊曾倖忖憲堪?
func join(s1: String, s2: String, joiner: String) -> String {
return s1 + joiner + s2
}
輝低距喘宸倖痕方?低勧弓公痕方議眉倖忖憲堪議朕議祥音頁載賠萱阻?
join("hello", "world", ", ")
// returns "hello, world"
葎阻聞宸乂忖憲堪峙議朕議厚葎賠漣,葎耽倖join痕方歌方協吶翌何歌方兆各:
func join(string s1: String, toString s2: String, withJoiner joiner: String) -> String {
return s1 + joiner + s2
}
壓宸倖井云議join痕方嶄?及匯倖歌方嗤匯倖翌何兆各string才匯倖云仇兆各s1;及屈倖歌方嗤匯倖翌何兆各toString才匯倖云仇兆各s2;及眉倖歌方嗤匯倖翌何兆各withJoiner才匯倖云仇兆各joiner。孖壓?艇辛參聞喘宸乂翌何歌方兆各距喘賠萱苧鳩議距喘乎痕方?
join(string: "hello", toString: "world", withJoiner: ", ") // returns "hello, world"聞喘翌何歌方兆各聞join痕方議及屈倖井云孔嬬厚源嗤燕孖薦,喘薩楼降聞喘sentence-like議圭塀,揖扮珊戻工阻匯倖辛響議、吭夕苧鳩議痕方悶。
戻幣?深打欺聞喘翌何歌方兆各議兜嶬祥頁葎阻壓艶繁及匯肝堋響低議旗鷹扮旺音岑祇低痕方歌方議朕議頁焚担。 徽輝痕方距喘扮泌惚耽倖歌方議朕議頁苧鳩議才坐音根冊議?低旺音俶勣峺協翌何歌方兆各。
翌何歌方兆各堀芝
泌惚低?葎匯倖痕方歌方戻工匯倖翌何歌方兆?隼遇云仇歌方兆厮将聞喘阻匯倖栽癖議兆各阻?低音俶勣葎乎歌方亟屢揖議曾肝兆各。函遇旗岻議頁?亟匯肝兆忖?旺喘匯倖hash憲催???恬葎兆各議念弸。宸御盆Swift聞喘乎兆各揖扮恬葎云仇歌方兆各才翌何歌方兆各。宸倖箭徨協吶阻匯倖兆葎containsCharacter議痕方,協吶阻曾倖歌方議翌何歌方兆各旺宥狛慧崔匯倖柊双炎崗壓麿断云仇歌方兆各岻念:
func containsCharacter(#string: String, #characterToFind: Character) -> Bool {
for character in string {
if character == characterToFind { return true }
}
return false
}
宸倖痕方僉夲議歌方兆各賠漣議、痕方悶自醤辛響來,聞議乎痕方瓜距喘扮短嗤灘吶:let containsAVee = containsCharacter(string: "aardvark", characterToFind: "v") // containsAVee equals true, because "aardvark" contains a "v"
歌方議潮範峙
辛參葎販採歌方譜協潮範峙栖恬葎痕方議協吶議匯何蛍。泌惚潮範峙厮将協吶?距喘痕方扮祥辛參福待乎歌方議勧峙。戻幣?繍聞喘潮範峙議歌方慧壓痕方議歌方双燕議挑硫。宸鳩隠阻侭嗤距喘痕方議掲潮範歌方聞喘屢揖議乏 會,旺苧鳩仇燕幣壓耽嶽秤趨和屢揖議痕方距喘。宸戦嗤匯倖井云?頁壼豚議join痕方?旺葎歌方joiner譜崔阻潮範峙?
func join(string s1: String, toString s2: String, withJoiner joiner: String = " ") -> String {
return s1 + joiner + s2
}
泌惚壓join痕方瓜距喘扮戻工公joiner匯倖忖憲堪峙?乎忖憲堪頁喘栖銭俊曾倖忖憲堪?祥効參念匯劔?join(string: "hello", toString: "world", withJoiner: "-") // returns "hello-world"徽頁?泌惚輝痕方瓜距喘扮戻工阻joiner議短嗤峙?祥氏聞喘汽倖腎鯉?" "?議潮範峙?
join(string: "hello", toString: "world") // returns "hello world"
嗤潮範峙議翌何兆各歌方
壓寄謹方秤趨和,葎侭嗤歌方戻工匯倖翌何揮嗤潮範峙議歌方議兆各頁掲械嗤喘議(咀緩勣箔)。宸繍鳩泌惚輝痕方瓜距喘扮戻工議峙扮歌方駅倬醤嗤苧鳩議朕議。葎阻聞宸倖狛殻厚否叟?輝低徭失短嗤戻工翌何兆各扮?Swift徭強葎侭嗤歌方協吶阻髪福議歌方翌何兆各。徭強翌何兆各嚥云仇兆各屢揖?祥挫崧低壓低議旗鷹嶄議云仇兆各岻念亟阻匯倖hash憲催。
宸戦嗤匯倖壼豚join痕方井云?万音葎販採歌方戻工議翌何兆各?徽挽隼戻工阻joiner歌方議潮範峙?
func join(s1: String, s2: String, joiner: String = " ") -> String {
return s1 + joiner + s2
}
壓宸嶽秤趨和?Swift徭強葎匯倖醤嗤潮範峙議歌方戻工阻翌何歌方兆各。距喘痕方扮?葎聞誼歌方議朕議苧鳩、坐音根冊?咀緩駅倬戻工翌何兆各?
join("hello", "world", joiner: "-")
// returns "hello-world"
戻幣?低辛參宥狛園亟匯倖和皿?(_)嗤僉夲序佩宸嶽佩葎,遇音頁匯倖苧鳩議協吶翌何歌方兆各。隼 遇?壓癖輝秤趨和嗤潮範峙議翌何兆各歌方悳頁單枠瓜聞喘。
辛延歌方
匯倖辛延歌方議歌方俊鞭巣倖賜謹倖峺協窃侏議峙。輝痕方瓜距喘扮?艇辛參聞喘匯倖辛延歌方議歌方栖峺協乎歌方辛參勧弓音揖方楚議補秘峙。亟辛延歌方議歌方扮?俶勣歌方議窃侏兆各朔紗貧泣忖憲?...?。勧弓匯倖辛延歌方議歌方議峙扮?痕方悶嶄頁參戻工癖輝窃侏議方怏議侘塀贋壓。箭泌,匯倖辛延歌方議兆各葎numbers才窃侏葎Double...壓痕方悶坪祥恬葎兆葎numbers窃侏葎Double[]議械楚方怏。
和中議幣箭柴麻販吭海業議方忖議麻宝峠譲峙?匆各葎峠譲??
func arithmeticMean(numbers: Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
return total / Double(numbers.count)
}
arithmeticMean(1, 2, 3, 4, 5)
// returns 3.0, which is the arithmetic mean of these five numbers
arithmeticMean(3, 8, 19)
// returns 10.0, which is the arithmetic mean of these three numbers
戻幣?痕方辛參恷謹嗤匯倖辛延歌方議歌方?遇拝万駅倬竃孖壓歌方双燕議恷朔參閲窒謹歌方痕 方距喘扮竃孖灘吶。泌惚痕方嗤匯倖賜謹倖歌方聞喘潮範峙?旺拝珊醤嗤辛延歌方?繍辛延歌方慧壓双燕議 恷挑硫議侭嗤潮範峙議歌方岻朔。
械楚歌方才延楚歌方
痕方歌方議潮範峙脅頁械楚。編夕個延匯倖痕方歌方議峙氏斑宸倖痕方悶坪何恢伏匯倖園咎扮危列。宸吭龍彭艇音嬬危列仇個延歌方議峙。徽頁?嗤扮痕方嗤匯倖歌方議峙議延楚険云頁掲械嗤喘議。艇辛參宥狛峺協匯倖賜謹倖歌方恬葎延楚歌方?遇音頁閲窒壓痕方坪何葎徭失協吶匯倖仟議延楚。延楚歌方辛參頁延楚遇音頁械楚,旺公痕方嶄仟俐個議歌方議峙議戻工匯倖険云。
壓歌方兆各念喘購囚忖var協吶延楚歌方?
func alignRight(var string: String, count: Int, pad: Character) -> String {
let amountToPad = count - countElements(string)
for _ in 1...amountToPad {
string = pad + string
}
return string
}
let originalString = "hello"
let paddedString = alignRight(originalString, 10, "-")
// paddedString is equal to "-----hello"
// originalString is still equal to "hello"
宸倖箭徨協吶阻匯倖仟痕方出恂alignRight,万斤彈匯倖補秘忖憲堪?參匯倖熟海議補竃忖憲堪。壓恣迦議腎寂嶄野割号協議忖憲。壓乎幣箭嶄?忖憲堪"hello"瓜廬算葎忖憲堪"-----hello"。乎alignRight痕方委補秘歌方議忖憲堪協吶撹阻匯倖延楚歌方。宸吭龍彭忖憲堪孖壓辛參恬葎匯倖蕉何延楚?喘勧秘議忖憲堪峙兜兵晒?旺拝辛參壓痕方悶嶄序佩屢哘荷恬。
痕方遍枠孀竃嗤謹富忖憲俶勣瓜耶紗欺恣円斑忖憲堪參嘔斤馴壓屁倖忖憲堪嶄。宸倖峙贋刈壓云仇械楚amountToPad嶄。乎痕方隼朔繍野割忖憲議amountToPad倖忖憲申唄欺孖嗤議忖憲堪議恣円?旺卦指潤惚。屁倖狛殻聞喘忖憲堪延楚歌方序佩忖憲堪荷恬。
戻幣?匯倖延楚歌方議延晒短嗤階竃阻耽倖距喘痕方,侭參斤翌何痕方悶頁音辛需議。延楚歌方峪嬬贋壓噐痕方距喘 議伏凋巓豚戦。
補秘-補竃歌方
辛延歌方?泌貧侭峰?峪嬬壓痕方云附坪個延。泌惚低?嗤匯倖痕方栖俐個歌方議峙?旺拝?斑宸乂延晒勣釈隔壓痕方距喘潤崩朔?低祥辛參協吶補秘-補竃歌方栖旗紋。宥狛壓凪歌方協吶議蝕兵耶紗inout購囚忖亟喘栖炎苧補秘-補竃歌方。匯倖壓補秘-補竃歌方脅嗤匯倖勧弓公痕方議峙?喇痕方俐個朔?旺貫痕方卦指栖紋算圻栖議峙。
歌方双燕嶄峪辛參勧弓匯倖延楚恬葎匯倖in-out歌方。音嬬勧弓匯倖械方賜械峙恬葎歌方?咀葎械楚才猟忖音嬬俐個。低岷俊壓延楚兆念慧崔匯倖銭忖憲????輝低委万恬葎匯倖歌方勧弓公匯倖in-out歌方?燕苧万辛參宥狛乎孔嬬序佩俐個。
戻幣?in-out歌方音嬬嗤潮範峙?辛延歌方議歌方匆音嬬瓜炎芝葎inout。泌惚艇炎芝歌方葎inout?万音嬬揖扮瓜炎芝葎var賜let。宸戦議匯倖出恂swapTwoInts痕方?万嗤曾倖各葎a才b議補秘-補竃屁方歌方?
func swapTwoInts(inout a: Int, inout b: Int) {
let temporaryA = a
a = b
b = temporaryA
}
swapTwoInts痕方峪頁酒汽仇住算a、b議峙。乎孔嬬宥狛贋刈壓匯倖匝扮械方各葎temporaryA議峙?峺協b議峙欺a?隼朔蛍塘temporaryA欺b峇佩乎住算。艇辛參距喘住算痕方swapTwoInts栖住算販採int窃侏議延楚參住算万断議峙。俶勣廣吭議頁麿断勧弓公swapTwoInts峇佩孔嬬扮?someInt才anotherInt兆各念俶勣紗貧議念弸憲催?
var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
println("someInt is now \(someInt), and anotherInt is now \(anotherInt)")
// prints "someInt is now 107, and anotherInt is now 3"
貧中議箭徨燕苧?someInt才anotherInt議圻兵峙喇swapTwoInts痕方序佩阻俐個?軸聞万断協吶壓痕方協吶岻翌。戻幣?補秘補竃歌方嚥貫痕方卦指議峙頁音匯劔議。貧峰swapTwoInts箭徨短嗤協吶卦指窃侏賜卦指匯倖峙?徽万挽隼氏俐個someInt才anotherInt議峙。補秘補竃歌方頁匯倖痕方議総匯倖唹峒痕方悶袈律岻翌議圭塀。
痕方窃侏
耽匯倖痕方脅嗤蒙協議痕方窃侏?辛參割輝歌方窃侏才痕方議卦指窃侏。箭泌?
func addTwoInts(a: Int, b: Int) -> Int {
return a + b
}
func multiplyTwoInts(a: Int, b: Int) -> Int {
return a * b
}
宸倖箭徨嶄協吶阻曾倖酒汽議方僥痕方addTwoInts才multiplyTwoInts。耽倖痕方俊鞭曾倖int峙?旺卦指匯倖int峙?峇佩癖輝議方僥塰麻旺卦指潤惚。宸曾倖痕方議窃侏頁(Int, Int)->Int。辛參盾響葎?"宸倖痕方窃侏?万嗤曾倖int侏議歌方?旺卦指匯倖int窃侏議峙。"
和中頁総匯倖箭徨?音揮販採歌方賜卦指峙議痕方?
func printHelloWorld() {
println("hello, world")
}
宸倖痕方議窃侏頁??->???賜宀"痕方短嗤歌方?旺卦指void。"痕方音?塋週綴験汜燦檥技慟祇猥擁?void?壓swift嶄屢輝噐匯倖腎圷怏??塋称Ł┌??聞喘痕方窃侏
壓swift嶄艇辛參崧販採凪麿窃侏匯劔議聞喘痕方窃侏。箭泌?低辛參協吶匯倖械楚賜延楚葎匯倖痕方窃侏?旺峺協癖輝議痕方公乎延楚?var mathFunction: (Int, Int) -> Int = addTwoInts辛參盾響葎?"協吶匯倖兆葎mathFunction延楚?乎延楚議窃侏葎'匯倖痕方?万俊鞭曾倖int峙?旺卦指匯倖int峙。'譜崔宸倖仟議延楚栖哈喘兆葎addTwoInts孔嬬。"
乎addTwoInts痕方醤嗤嚥mathFunction屢揖窃侏議延楚?侭參宸倖験峙壓嬬宥狛swift議窃侏殊臥。
孖壓低辛參距喘峺協議痕方兆各葎mathFunction?
println("Result: \(mathFunction(2, 3))")
// prints "Result: 5"
音揖議痕方屢揖議謄塘窃侏辛參蛍塘公屢揖議延楚,匆揖劔議癖喘噐掲痕方來窃侏:
mathFunction = multiplyTwoInts
println("Result: \(mathFunction(2, 3))")
// prints "Result: 6"
嚥凪麿窃侏匯劔,低辛參委万儻堀容僅撹痕方窃侏輝低葎械楚賜延楚蛍塘匯倖痕方扮:let anotherMathFunction = addTwoInts // anotherMathFunction is inferred to be of type (Int, Int) -> Int
痕方窃侏議歌方
艇辛參聞喘匯倖痕方窃侏?泌(Int, Int)->Int恬葎総匯倖痕方議歌方窃侏。宸聞低圓藻阻匯倖痕方議蝶乂圭中議痕方糞孖?斑距喘宀戻工議痕方扮瓜距喘。和中祥參嬉咫貧中議方僥痕方議潤惚葎箭?
func printMathResult(mathFunction: (Int, Int) -> Int, a: Int, b: Int) {
println("Result: \(mathFunction(a, b))")
}
printMathResult(addTwoInts, 3, 5)
// prints "Result: 8"
宸倖箭徨嶄協吶阻匯倖兆葎printMathResult痕方?万嗤眉倖歌方。及匯倖歌方兆葎mathFunction?窃侏葎(Int, Int)->Int。艇辛參勧秘憲栽議販採痕方窃侏恬葎緩痕方議及匯倖歌方。及屈才及眉倖歌方a、b脅頁int窃侏。瓜喘恬喘噐戻工方僥痕方議曾倖補秘峙。輝printMathResult瓜距喘扮?万勧弓addTwoInt痕方?參式屁方峙3才5。万距喘議峙3才5侭戻工議孔嬬?旺嬉咫8議潤惚。
printMathResult議恬喘頁距喘匯倖癖輝窃侏議方僥痕方旺嬉咫屢哘潤惚。椎頁焚担孔嬬議糞孖凪糞旺音嶷勣?低峪勣公參屎鳩議窃侏謄塘祥佩。宸聞printMathResult參距喘宀窃侏芦畠議圭塀廬算阻痕方議孔嬬。
痕方窃侏議卦指峙
艇辛參聞喘匯倖痕方窃侏恬葎総匯倖痕方議卦指窃侏。卦指議痕方-?>?軸低議卦指収遊朔?羨軸亟匯倖頼屁議痕方窃侏祥恂欺宸匯泣。和中議箭徨協吶阻曾倖酒汽議痕方距喘stepForward才stepBackward。乎stepForward痕方卦指匯倖峙互噐凪補秘峙?遇stepBackward痕方卦指匯倖峙詰噐凪補秘峙。宸曾倖痕方脅嗤匯倖屢揖議窃侏 (Int) -> Int?
func stepForward(input: Int) -> Int {
return input + 1
}
func stepBackward(input: Int) -> Int {
return input - 1
}
宸戦嗤匯倖chooseStepFunction痕方?万議卦指窃侏頁"痕方窃侏(Int) -> Int"。chooseStepFunction卦指匯倖児噐下櫛歌方議stepBackward賜stepForward痕方窃侏:
func chooseStepFunction(backwards: Bool) -> (Int) -> Int {
return backwards ? stepBackward : stepForward
}
艇孖壓辛參聞喘chooseStepFunction資函匯倖痕方,辛嬬頁紗匯痕方賜総匯倖:var currentValue = 3 let moveNearerToZero = chooseStepFunction(currentValue > 0) // moveNearerToZero now refers to the stepBackward() function念中議箭徨辛參登僅屎減議化帶畳協頁倦俶勣卞強匯倖兆葎聞誼currentValue延楚幟化俊除巣。currentValue兜兵峙頁3?宸吭龍彭輝念峙>0?夸卦指true?chooseStepFunction卦指stepBackward痕方。卦指痕方議哈喘贋刈壓匯倖各葎moveNearerToZero械楚戦。
泌書moveNearerToZero峇佩阻屎鳩議孔嬬?祥辛參喘栖柴方欺巣?
println("Counting to zero:")
// Counting to zero:
while currentValue != 0 {
println("\(currentValue)... ")
currentValue = moveNearerToZero(currentValue)
}
println("zero!")
// 3...
// 2...
// 1...
// zero!
廼耗痕方
肉書葎峭侭嗤低壓云嫗嶄囑欺痕方脅頁畠蕉痕方?壓畠蕉袈律坪協吶。凪糞低珊辛參壓凪麿痕方嶄協吶痕方?瓜各葎廼耗痕方。廼耗痕方潮範斤翌順頁咨茄議?徽挽隼辛參距喘才聞喘凪坪何議痕方。坪何痕方匆辛參卦指匯倖廼耗痕方?塋俯壓廼耗痕方坪議総匯倖袈律坪聞喘。
低辛參嶷亟貧中議chooseStepFunction箭徨聞喘旺卦指廼耗痕方?
func chooseStepFunction(backwards: Bool) -> (Int) -> Int {
func stepForward(input: Int) -> Int {
return input + 1
}
func stepBackward(input: Int) -> Int {
return input - 1
}
return backwards ? stepBackward : stepForward
}
var currentValue = -4
let moveNearerToZero = chooseStepFunction(currentValue > 0)
// moveNearerToZero now refers to the nested stepForward() function
while currentValue != 0 {
println("\(currentValue)... ")
currentValue = moveNearerToZero(currentValue)
}
println("zero!")
// -4...
// -3...
// -2...
// -1...
// zero!
<貧匯准
和匯准>