Swift蕗苧歌深
<貧匯准
和匯准>
匯訳蕗苧辛參壓低議殻會戦哈秘仟議兆忖才更夛。訟箭栖傍?低辛參聞喘蕗苧栖哈秘痕方才圭隈?延楚才械楚?賜宀栖協吶 仟議凋兆挫議旦訟?潤更?窃才亅咏窃侏。低匆辛參聞喘匯訳蕗苧栖决海匯倖厮将贋壓議凋兆挫議窃侏議佩葎。賜宀壓低議 殻會戦哈秘壓凪麿仇圭蕗苧議憲催。
壓swift嶄?寄謹方蕗苧壓蝶嶽吭吶貧讐匆頁峇佩賜揖並蕗苧万断議兜兵晒協吶。宸吭龍彭?咀葎亅咏才麿断議撹埀音謄塘? 寄謹方亅咏撹埀俶勣汽鏡議蕗苧。葎阻圭宴軟需?匆咀葎宸乂曝艶壓swift戦音頁載嶷勣?蕗苧囂鞘揖扮淫根阻蕗苧才協吶。
泌惚械楚兆頁匯倖圷怕侘塀?圷怕嶄議耽匯?兜兵晒燕器塀嶄脅勣嗤斤哘議峙
蕗苧匯倖床蓑械楚勣聞喘購囚忖static。床蓑奉來壓窃侏奉來?type propetries?嶄嗤初府。
泌惚珊?資誼厚謹購噐械楚議佚連賜宀?壓聞喘嶄資誼逸廁?萩臥心械楚才延楚?constants and variables?, 贋刈奉來?stored properties?吉准。
更夛匂燕器塀辛參才械楚蕗苧屢曳?泌惚延楚兆頁匯倖圷怕窃侏?圷怕議耽匯?議兆忖脅勣才兜兵晒燕器塀匯崑。
屎泌兆忖匯劔?贋刈侏延楚議峙賜贋刈侏延楚奉來贋刈壓坪贋嶄。
getter喘栖響函延楚峙?setter喘栖亟秘延楚峙。setter徨鞘頁辛僉夲議?峪嗤getter頁駅俶議?低辛參繍宸乂囂鞘 脅福待?峪頁酒汽議岷俊卦指萩箔峙?屎泌壓峪響柴麻奉來(read-only computed properites)嶄宙峰議椎劔。 徽頁泌惚低戻工阻匯倖setter囂鞘?低匆駅俶戻工匯倖getter囂鞘。
setter議兆忖才垈凄催坪議囂鞘頁辛僉議。泌惚低亟阻匯倖setter兆?万祥氏恬葎setter議歌方瓜聞喘。泌惚低音亟setter兆? setter議兜兵兆葎newValue?屎泌壓seter蕗苧堀芝(shorthand setter declaration)嶄戻欺議椎劔。
音崧贋刈侏延楚才贋刈侏奉來椎劔?柴麻侏奉來才柴麻侏延楚議峙音贋刈壓坪贋嶄。
資誼厚謹佚連?臥心厚謹購噐柴麻侏奉來議箭徨?萩臥心柴麻侏奉來(computed properties)匯准。
低辛參葎癖栽議酌篇匂耶紗販採贋刈侏奉來。低匆辛參宥狛嶷亟徨窃奉來議圭塀葎癖栽議酌篇匂耶紗販採写覚議奉來 (涙胎頁贋刈侏珊頁柴麻侏議)?歌需嶷亟奉來酌篇匂(overriding properyt observers)。
兜兵晒燕器塀壓窃賜宀潤更悶議蕗苧嶄頁辛僉議?徽頁壓凪麿仇圭頁駅俶議。涙胎壓焚担仇圭蕗苧? 侭嗤淫根酌篇匂議延楚蕗苧脅駅倬嗤窃侏廣瞥(type annotation)。
輝延楚賜奉來議峙瓜個延扮?willset才didset酌篇匂戻工阻匯倖酌篇圭隈?癖輝議指哘?。 酌篇匂音氏壓延楚賜奉來及匯肝兜兵晒扮音氏瓜塰佩?麿断峪嗤壓峙瓜翌何兜兵晒囂鞘個延扮嘉氏瓜塰佩。
willset酌篇匂峪嗤壓延楚賜奉來峙瓜個延岻念塰佩。仟議峙恬葎匯倖械楚将狛狛willset酌篇匂?咀緩音辛參壓 willset囂鞘嶄個延万。didset酌篇匂壓延楚賜奉來峙瓜個延朔羨軸塰佩。才willset酌篇匂屢郡?葎阻參契峭低挽隼 俶勣資誼症議方象?症延楚峙賜宀奉來氏将狛didset酌篇匂。宸吭龍彭?泌惚低壓延楚賜奉來徭附議didiset酌篇匂囂鞘 嶄譜崔阻匯倖峙?低譜崔議仟峙氏函旗胡胡壓willset酌篇匂嶄将狛議椎倖峙。
壓willset才didset囂鞘嶄?setter兆才垈凄催議囂鞘頁辛僉議。泌惚低亟阻匯倖setter兆?万祥氏恬葎willset才didset議歌方瓜聞喘。泌惚低音亟setter兆? willset酌篇匂兜兵兆葎newvalue?didset酌篇匂兜兵兆葎oldvalue。
輝低戻工匯倖willset囂鞘扮?didset囂鞘頁辛僉議。揖劔議?壓低戻工阻匯倖didset囂鞘扮?willset囂鞘頁辛僉議。
資誼厚謹佚連?臥心泌採聞喘奉來酌篇匂議箭徨?萩臥心奉來酌篇匂(prpperty observers)匯准。
臥心厚謹Protocol Associated Type Declaration.
痕方辛參聞喘圷怏窃侏恬葎卦指峙栖卦指謹倖延楚。
痕方協吶辛參竃孖壓総匯倖痕方蕗苧坪。宸嶽痕方瓜各恬nested痕方。厚謹購噐nested痕方議網胎?歌需nestde functions。
壓歌方兆念侭亟議込錬憲催(#)旗燕彭宸倖歌方兆辛參揖扮恬葎翌何賜云悶歌方兆栖聞喘。吉揖噐慕亟曾肝云仇歌方兆。 壓痕方賜圭隈距喘扮?嚥凪斤哘議囂鞘駅倬淫根宸倖兆忖。
云仇歌方兆念議膿距忖憲(_)聞歌方壓痕方瓜距喘扮短嗤兆各。壓痕方賜圭隈距喘扮?嚥凪斤哘議囂鞘駅倬短嗤兆忖。
匯倖參児粥窃侏兆議歌方?泌惚諸効彭眉倖泣(...)?瓜尖盾葎頁辛延歌方。匯倖痕方崛謹辛參啜嗤匯倖辛延歌方? 拝駅倬頁恷朔匯倖歌方。辛延歌方瓜恬葎乎児云窃侏兆議方怏栖心棋。訟箭栖讐?辛延歌方int...瓜心恂頁int[]。 臥心辛延歌方議聞喘箭徨?峋需辛延歌方(variadic parameters)匯准。
壓歌方議窃侏朔中嗤匯倖參吉催(=)銭俊議燕器塀?宸劔議歌方瓜心恂嗤彭公協燕器塀議兜編峙。泌惚歌方壓痕方 距喘扮瓜福待阻?祥氏聞喘兜兵峙。泌惚歌方短嗤覆楕?椎担万壓痕方距喘頁駅倬嗤徭失議兆忖.訟箭栖讐? f()才f(x:7)脅頁峪嗤匯倖延楚x議痕方議嗤丼距喘?徽頁f(7)頁掲隈議?咀葎万戻工阻匯倖峙遇音頁兆各。
徨窃嶷亟議圭隈駅倬參override購囚忖恬葎痕方蕗苧遊。音喘override購囚忖嶷亟議圭隈?聞喘阻override購囚忖 抜旺短嗤嶷亟幻窃圭隈脅氏烏危。
才窃侏屢購遇音頁才窃侏糞箭屢購議圭隈駅倬壓static蕗苧議潤更參賜旦訟坪?呀賜頁參class購囚忖協吶議窃坪。
旦訟蕗苧嗤曾嶽児云議侘塀?聞喘購囚忖enum栖蕗苧。旦訟蕗苧悶聞喘貫巣蝕兵議延楚——出恂旦訟並周?才販吭方楚議 蕗苧?淫凄柴麻侏奉來?糞箭圭隈?床蓑圭隈?更夛匂?窃侏艶兆?封崛凪麿旦訟?潤更悶?才窃。旦訟蕗苧音嬬 淫根裂更匂賜宀亅咏蕗苧。
音崧窃賜宀潤更悶。旦訟窃侏旺音戻工咨塀議兜兵更夛匂?侭嗤更夛匂駅倬?塋週追禱滇9行貽灊敏堽垸价蕎掎亠墜篷? 更夛匂?徽頁更夛狛殻叙輝更夛匂繍匯倖旦訟扮寂頼撹朔嘉畠何頼撹。
才潤更悶窃貌徽頁才窃音揖?旦訟頁峙窃侏?旦訟糞箭壓験嚠延楚賜械楚扮?賜宀瓜痕方距喘扮瓜鹸崙。 厚謹購噐峙窃侏議佚連?歌需潤更悶才旦訟脅頁峙窃侏(Structures and Enumerations Are Value Types)匯准。
低辛參制婢旦訟窃侏?屎泌壓制婢兆蕗苧(Extension Declaration)嶄網胎議匯劔。
宸嶽侘塀嶄?耽匯倖並周翠喇購囚忖case蝕兵?朔中諸俊彭匯倖賜謹倖參矯催蛍侯議旦訟並周。耽匯倖並周兆駅倬頁 鏡匯涙屈議。耽匯倖並周匆辛參峺協万侭贋刈議峺協窃侏議峙?宸乂窃侏壓購選峙窃侏議圷怕戦瓜峺協?羨軸慕亟壓並周 兆朔。資誼厚謹購噐購選峙窃侏議佚連才箭徨?萩臥心購選峙(associated values)匯准。
耽匯倖並周駅倬嗤率匯議兆忖?駅倬嗤匯倖率匯議兜兵峙。泌惚兜兵峙窃侏瓜峺協葎int?夸音駅葎並周?塋週綴原42毅? 万断氏咨塀議瓜炎葎峙0,1,2吉。耽匯倖短嗤瓜験峙議Int窃侏扮寂氏咨塀議験嚠匯倖兜兵峙?万断頁徭強弓奐議。
旦訟並周議兜兵峙辛參距喘圭隈roRaw資誼?泌ExampleEnum.B.toRaw()。低匆辛參宥狛距喘fromRaw圭隈栖聞喘兜兵峙孀欺 凪斤哘議並周?旺卦指匯倖辛僉議並周。臥心厚謹佚連才資函兜兵峙窃侏並周議佚連?歌堋兜兵峙(raw values)。
聞喘switch囂鞘栖殊刮旦訟並周議峙?屎泌聞喘switch囂鞘謄塘旦訟峙?Matching Enumeration Values with a Switch Statement)匯准宙峰議椎劔。
旦訟窃侏頁庁塀謄塘(pattern-matched)議?才凪屢郡議頁switch囂鞘case翠嶄旦訟並周謄塘?壓旦訟並周窃侏(Enumeration Case Pattern)嶄嗤宙峰。
潤更悶辛參淫根販吭方楚議亅咏?徽頁音嬬写覚徭窃?旦訟賜宀凪麿潤更悶。
嗤眉嶽圭隈辛參幹秀匯倖蕗苧狛議潤更悶糞箭?
-距喘潤更悶坪蕗苧議更夛匂?歌孚更夛匂(initializers)匯准。
—泌惚短嗤蕗苧更夛匂?距喘潤更悶議幟倖更夛匂?峋秤歌需Memberwise Initializers for Structure Types.
—泌惚短嗤蕗苧裂更匂?潤更悶議侭嗤奉來脅嗤兜兵峙?距喘潤更悶議潮範更夛匂?峋秤歌需潮範更夛匂(Default Initializers).
潤更悶議更夛狛殻歌需兜兵晒(initiaization)匯准。
潤更悶糞箭奉來辛參喘泣(.)栖資誼?峋秤歌需資誼奉來(Accessing Properties)匯准。
潤更悶頁峙窃侏?潤更悶議糞箭壓瓜験嚠延楚賜械楚?瓜痕方距喘扮瓜鹸崙。資誼購噐峙窃侏厚謹佚連?歌需 潤更悶才旦訟脅頁峙窃侏(Structures and Enumerations Are Value Types)匯准。
低辛參聞喘制婢蕗苧栖制婢潤更悶窃侏議佩葎?歌需制婢蕗苧(Extension Declaration).
匯倖窃峪嬬写覚匯倖幻窃?階窃?徽頁辛參淫根販吭方楚議亅咏。宸乂階窃及匯肝壓type-inheritance-clause竃孖?恆儉販吭亅咏。
屎泌壓兜兵晒蕗苧(Initializer Declaration)霧式議椎劔?窃辛參嗤峺協才圭宴議更夛匂。輝低蕗苧販匯嶄更夛匂扮? 低辛參聞喘requierd延楚栖炎芝更夛匂?勣箔販吭徨窃栖嶷亟万。峺協窃議更夛匂駅倬兜兵晒窃侭嗤議厮蕗苧議奉來? 万駅倬壓徨窃更夛匂距喘念瓜峇佩。
窃辛參嶷亟奉來?圭隈才万議階窃議更夛匂。嶷亟議圭隈才奉來駅倬參override炎廣。
埋隼階窃議奉來才圭隈蕗苧辛參瓜輝念窃写覚?徽頁階窃蕗苧議峺協更夛匂抜音嬬。宸吭龍彭?泌惚輝念窃嶷亟阻階窃 議侭嗤峺協更夛匂?万祥写覚阻階窃議圭宴更夛匂。Swift議窃旺音頁写覚徭匯倖畠蕉児粥窃。
嗤曾嶽圭隈栖幹秀厮蕗苧議窃議糞箭?
窃糞箭奉來辛參喘泣(.)栖資誼?峋秤歌需資誼奉來(Accessing Properties)匯准。
窃頁哈喘窃侏?輝瓜験嚠械楚賜延楚?痕方距喘扮?窃議糞箭頁瓜哈喘?遇音頁鹸崙。資誼厚謹購噐哈喘窃侏議佚連? 潤更悶才旦訟脅頁峙窃侏(Structures and Enumerations Are Value Types)匯准。
低辛參聞喘制婢蕗苧栖制婢窃議佩葎?歌需制婢蕗苧(Extension Declaration).
亅咏議麼悶淫根巣賜謹倖亅咏撹埀蕗苧?宸乂撹埀宙峰阻販採寡喘乎亅咏駅倬諾怎議匯崑來勣箔。蒙艶議?匯倖亅咏辛參蕗苧駅倬糞孖蝶乂奉來、圭隈、兜兵晒殻會式現奉重云議匯崑來窃侏。亅咏匆辛參蕗苧廨喘嶽窃議窃侏艶兆?出恂購選窃侏?万辛參峺協亅咏議音揖蕗苧岻寂議購狼。亅咏撹埀蕗苧氏壓和中議峋秤戦序佩網胎。
亅咏窃侏辛參貫載謹凪万亅咏椎写覚。輝匯倖亅咏窃侏貫凪万亅咏椎写覚議扮昨?栖徭凪万亅咏議侭嗤勣箔祥鹿栽阻?遇拝貫輝念亅咏写覚議販採窃侏駅倬憲栽侭嗤議宸乂勣箔。斤噐泌採聞喘亅咏写覚議箭徨?臥心亅咏写覚
潮範仇?憲栽蝶匯倖亅咏議窃侏駅倬糞孖侭嗤蕗苧壓亅咏嶄議奉來、圭隈才現奉重云。匆祥頁傍?低辛參喘optional奉來炎廣宸乂亅咏撹埀蕗苧參峺協万断議匯崑來窃侏糞孖頁辛僉議。optional奉來叙叙辛參喘噐聞喘objc奉來炎芝狛議亅咏。宸劔議潤惚祥頁叙叙窃窃侏辛參寡喘旺憲栽淫根辛僉撹埀勣箔議亅咏。厚謹購噐泌採聞喘optional奉來議佚連式泌採恵諒辛僉亅咏撹埀議峺擬——曳泌輝低音嬬刃協頁倦匯崑來議窃侏糞孖阻万断——歌需辛僉亅咏勣箔
葎阻尫崙亅咏議寡喘叙叙寞斤窃窃侏?俶勣聞喘class_protocol奉來炎芝屁倖亅咏蕗苧。販吭写覚徭炎芝嗤class_protocol奉來亅咏議亅咏脅辛參崘嬬仇叙嬬瓜窃窃侏寡喘。
低辛參聞喘亅咏栖蕗苧匯倖窃議旗尖議圭隈賜宀哘乎糞孖議潤更?祥崧溜熔(旗尖)庁塀宙峰議椎劔。
揖凪万亅咏撹埀蕗苧匯劔?宸乂奉來蕗苧叙叙寞斤憲栽乎亅咏議窃侏蕗苧阻getter才setter勣箔。潤惚祥頁低音俶勣壓亅咏戦万瓜蕗苧議仇圭糞孖getter才setter。
getter才setter勣箔辛參宥狛匯崑來窃侏參光嶽圭塀諾怎。泌惚奉來蕗苧淫根get才set購囚簡?匯崑來窃侏祥辛參喘辛響亟?糞孖阻getter才setter?議贋刈侏延楚奉來賜柴麻侏奉來?徽頁奉來音嬬參械楚奉來賜峪響柴麻侏奉來糞孖。泌惚奉來蕗苧叙叙淫根get購囚簡議三?万辛參恬葎販吭窃侏議奉來瓜糞孖。曳泌傍糞孖阻亅咏議奉來勣箔議匯崑來窃侏?歌需奉來勣箔
厚謹歌需延楚蕗苧
聞喘購囚忖class辛參壓亅咏蕗苧嶄蕗苧匯倖窃賜駅俶議床蓑圭隈。峇佩宸乂圭隈議窃匆喘購囚忖class蕗苧。 屢郡議?峇佩宸乂圭隈議潤更悶駅倬參購囚忖static蕗苧。泌惚低?聞喘制婢圭隈?壓制婢窃扮聞喘class購囚忖? 壓制婢潤更悶扮聞喘static購囚忖。
厚謹萩歌堋痕方蕗苧。
厚謹萩歌堋更夛匂蕗苧。
厚謹歌堋現奉重云蕗苧。
潤更悶?旦訟?窃辛參嗤販吭方楚議更夛匂?徽頁窃議更夛匂議号夸才佩葎頁音匯劔議。音崧潤更悶才旦訟椎劔?窃 嗤曾嶽潤更悶?designed initializers 才convenience initializers?歌需更夛匂匯准。
泌和議侘塀蕗苧阻潤更悶?旦訟才窃議峺協更夛匂?
峺協更夛匂辛參壓窃蕗苧議貧和猟嶄蕗苧?咀緩万音嬬喘制婢蕗苧議圭隈紗秘匯倖窃嶄。
潤更悶才旦訟議更夛匂辛參揮填喘凪麿議厮蕗苧議更夛匂?栖溜熔凪嶄匯倖諮畠何序佩兜兵晒狛殻。
參購囚忖convenience栖蕗苧匯倖窃議宴旋更夛匂?
低辛參聞喘requierd購囚忖?繍宴旋更夛匂才峺協更夛匂炎芝葎耽倖徨窃議更夛匂脅駅倬啜嗤議。咀葎峺協更夛匂 音瓜徨窃写覚?麿断駅倬瓜羨軸峇佩。輝徨窃岷俊峇佩侭嗤階窃議峺協更夛匂(賜聞喘宴旋更夛匂嶷亟峺協更夛匂)扮? 駅俶議宴旋更夛匂辛參瓜咨塀議峇佩?呀辛參瓜写覚。音崧圭隈?現奉重云椎劔?低音俶勣葎宸乂嶷亟議更夛匂炎廣 overrride購囚忖。
臥心厚謹購噐音揖蕗苧圭隈議更夛匂議箭徨?歌堋更夛狛殻匯准。
徨窃写覚阻万議階窃議裂更匂?壓徨窃繍勣瓜瞥慧扮咨塀議距喘。徨窃壓侭嗤裂更匂瓜峇佩頼穎念音氏瓜瞥慧。
裂更匂音氏瓜岷俊距喘。
臥心箭徨才泌採壓窃議蕗苧嶄聞喘裂更匂?歌需裂更狛殻匯准 。
制婢蕗苧辛參?孖贋議窃?潤更悶?旦訟坪耶紗匯崑議亅咏。制婢蕗苧音嬬?匯倖窃嶄耶紗写覚議窃?咀緩 type-inheritance-clause頁匯倖峪淫根亅咏双燕議制婢蕗苧。
奉來?圭隈?孖贋窃侏議更夛匂音嬬瓜万断窃侏議制婢侭嶷亟。
制婢蕗苧辛參淫根更夛匂蕗苧?宸吭龍彭?泌惚低制婢議窃侏壓凪麿庁翠嶄協吶?更夛匂蕗苧駅倬溜熔総匯倖壓 椎倖庁翠戦蕗苧議更夛匂栖如輝議兜兵晒。
才柴麻來奉來匯劔?現奉重云蕗苧屶隔斤恵諒圷殆議響亟荷恬。getter喘噐響函峙?setter喘噐亟秘峙。setter徨鞘頁辛僉議?輝叙俶勣匯倖getter徨鞘扮?辛參繍屈宀脅策待拝岷俊卦指萩箔議峙軸辛。匆祥頁傍?泌惚聞喘阻setter徨鞘?祥駅倬聞喘getter徨鞘。
setter議兆忖才撃液議凄催頁辛僉議。泌惚聞喘阻setter兆各?万氏瓜輝恂勧公setter議延楚議兆各。泌惚音聞喘setter兆各?椎担勧公setter議延楚議兆各潮範頁value。setter兆各議窃侏駅倬嚥卦指窃侏(return type)議窃侏屢揖。
辛參壓現奉重云蕗苧議窃侏嶄?辛參嶷墮現奉重云?峪勣延楚(parameters)賜卦指窃侏(return type)嚥枠念議音揖軸辛。緩扮?駅倬聞喘override購囚忖蕗苧椎倖瓜顕固議現奉重云。(廣?挫岱亜?欺久頁嶷墮珊頁顕固??)
揖劔辛參壓亅咏蕗苧議貧和猟嶄蕗苧現奉重云?Protocol Subscript Declaration嶄嗤侭宙峰。
厚謹購噐現奉重云才現奉重云蕗苧議箭徨?萩歌深Subscripts。
和中議宸嶽侘塀蕗苧阻匯倖仟議嶄弸塰麻憲?
嶄弸塰麻憲辛參辛僉仇峺協單枠雫?潤栽來?賜曾宀揖扮峺協。
塰麻憲議單枠雫辛參峺協壓短嗤凄催淫律議秤趨和?塰麻憲嚥万議荷恬方泌採諸畜鰯協議。辛參聞喘貧和猟購囚忖precedence旺單枠雫(precedence level)匯軟栖峺協匯倖塰麻憲議單枠雫。單枠雫辛參頁0欺255岻寂議販採匯倖方忖(噴序崙屁方)?嚥噴序崙屁方忖中楚音揖議頁?万音辛參淫根販採和皿?忖憲。勝砿單枠雫頁匯倖蒙協議方忖?徽万叙喘恬嚥総匯倖塰麻憲曳熟(寄弌)。匆祥頁傍?匯倖荷恬方辛參揖扮瓜曾倖塰麻憲聞喘扮?箭泌2 + 3 * 5?單枠雫厚互議塰麻憲繍單枠嚥荷恬方鰯協。
塰麻憲議潤栽來辛參峺協壓短嗤凄催淫律議秤趨和?單枠雫屢揖議塰麻憲參採嶽乏會瓜蛍怏議。辛參聞喘貧和猟購囚忖associativity旺潤栽來(associativity)匯軟栖峺協匯倖塰麻憲議潤栽來?凪嶄潤栽來辛參傍頁貧和猟購囚忖left?right賜none嶄議販採匯倖。恣潤栽塰麻憲參貫恣欺嘔議侘塀蛍怏。箭泌?受隈塰麻憲(-)醤嗤恣潤栽來?咀緩4 - 5 - 6瓜參(4 - 5) - 6議侘塀蛍怏?凪潤惚葎-7。 嘔潤栽塰麻憲參貫嘔欺恣議侘塀蛍怏?斤噐譜崔葎none議掲潤栽塰麻憲?万断音參販採侘塀蛍怏。醤嗤屢揖單枠雫議掲潤栽塰麻憲?音辛參札屢惣俊。箭泌?燕器塀1 < 2 < 3掲隈議。
蕗苧扮音峺協販採單枠雫賜潤栽來議嶄弸塰麻憲?万断議單枠雫氏瓜兜兵晒葎100?潤栽來瓜兜兵晒葎none。
和中議宸嶽侘塀蕗苧阻匯倖仟議念弸塰麻憲?
念弸塰麻憲議蕗苧嶄音峺協單枠雫。念弸塰麻憲頁掲潤栽議。
和中議宸嶽侘塀蕗苧阻匯倖仟議朔弸塰麻憲?
才念弸塰麻憲匯劔?朔弸塰麻憲議蕗苧嶄音峺協單枠雫。朔弸塰麻憲頁掲潤栽議。
蕗苧阻匯倖仟議塰麻憲參朔?俶勣蕗苧匯倖効宸倖塰麻憲揖兆議痕方栖糞孖宸倖塰麻憲。泌採糞孖匯倖仟議塰麻憲?萩歌深Custom Operators。
壓swift嶄?寄謹方蕗苧壓蝶嶽吭吶貧讐匆頁峇佩賜揖並蕗苧万断議兜兵晒協吶。宸吭龍彭?咀葎亅咏才麿断議撹埀音謄塘? 寄謹方亅咏撹埀俶勣汽鏡議蕗苧。葎阻圭宴軟需?匆咀葎宸乂曝艶壓swift戦音頁載嶷勣?蕗苧囂鞘揖扮淫根阻蕗苧才協吶。
GRAMMAR OF A DECLARATION
declaration → import-declaration
declaration → constant-declaration
declaration → variable-declaration
declaration → typealias-declaration
declaration → function-declaration
declaration → enum-declaration
declaration → struct-declaration
declaration → class-declaration
declaration → protocol-declaration
declaration → initializer-declaration
declaration → deinitializer-declaration
declaration → extension-declaration
declaration → subscript-declaration
declaration → operator-declaration
declarations → declarationdeclarationsopt
declaration-specifiers → declaration-specifierdeclaration-specifiersopt
declaration-specifier → class | mutating | nonmutating | override | static | unowned |
庁翠袈律
庁翠袈律協吶阻斤庁翠嶄凪麿坿猟周辛需議旗鷹。?廣?棋個序?壓swift議坿猟周嶄?恷互雫艶議旗鷹喇巣倖賜謹倖囂鞘? 蕗苧才燕器怏撹。延楚?械楚才凪麿議蕗苧囂鞘壓匯倖坿猟周議恷競雫瓜蕗苧?聞誼麿断斤揖匯庁翠嶄議耽倖坿猟周脅頁辛需議。GRAMMAR OF A TOP-LEVEL DECLARATION
top-level-declaration → statements opt
旗鷹翠
旗鷹翠喘栖繍匯乂蕗苧才陣崙潤更議囂鞘怏岶壓匯軟。万嗤泌和議侘塀?
{ `statements` }
旗鷹翠嶄議囂鞘淫凄蕗苧?燕器塀才光嶽凪麿窃侏議囂鞘?万断梓孚壓坿鷹嶄議竃孖乏會瓜卆肝峇佩。GRAMMAR OF A CODE BLOCK
code-block → statements opt
哈秘蕗苧
哈秘蕗苧聞低辛參聞喘壓凪麿猟周嶄蕗苧議坪否。哈秘囂鞘議児云侘塀頁哈秘屁倖旗鷹庁翠?万喇import購囚忖蝕兵?朔中 諸効匯倖庁翠兆?import module低辛參戻工厚謹議聾准栖尫崙哈秘議憲催?泌蕗苧匯倖蒙歩議徨庁翠賜宀壓匯倖庁翠賜徨庁翠嶄恂蒙歩議蕗苧。?棋個序? 輝低聞喘阻宸乂聾准朔?壓輝念議殻會祉悳峪嗤哈秘議憲催頁辛喘議?旺音頁蕗苧議屁倖庁翠?。
import import kind module.symbol name import module.submodule
GRAMMAR OF AN IMPORT DECLARATION
import-declaration → attributes opt import import-kind opt import-path import-kind → typealias | struct | class | enum | protocol | var | func import-path → import-path-identifier import-path-identifier.import-path import-path-identifier → identifier operator
械楚蕗苧
械楚蕗苧辛參壓低議殻會戦凋兆匯倖械楚。械楚參購囚簡let栖蕗苧?恆儉泌和議鯉塀:let constant name: type = expression輝械楚議峙瓜公協朔?械楚祥繍械楚兆各才燕器塀兜兵峙音延議潤栽壓阻匯軟?遇拝音嬬厚個。 宸吭龍彭泌惚械楚參窃議侘塀瓜兜兵晒?窃云附議坪否頁辛參個延議?徽頁械楚才窃岻寂議潤栽購狼頁音嬬個延議。 輝匯倖械楚瓜蕗苧葎畠蕉延楚?万駅倬瓜公協匯倖兜兵峙。輝匯倖械楚壓窃賜宀潤更悶嶄瓜蕗苧扮?麿瓜範葎頁匯倖械楚 奉來。械楚旺音頁辛柴麻議奉來?咀緩音淫根getters才setters。?咎宀廣?getters才setters音岑祇奕担鍬咎?棋個序?
泌惚械楚兆頁匯倖圷怕侘塀?圷怕嶄議耽匯?兜兵晒燕器塀嶄脅勣嗤斤哘議峙
let (firstNumber, secondNumber) = (10, 42)壓貧箭嶄?firstNumber頁匯倖峙葎10議械楚?secnodeName頁匯倖峙葎42議械楚。侭嗤械楚脅辛參鏡羨議聞喘?
1 println("The first number is \(firstNumber).") 2 // prints "The first number is 10." 3 println("The second number is \(secondNumber).") 4 // prints "The second number is 42."
窃侏廣瞥?:type?壓械楚蕗苧嶄頁匯倖辛僉??万辛參喘栖宙峰壓窃侏俊笥?type inference?嶄孀欺議窃侏。蕗苧匯倖床蓑械楚勣聞喘購囚忖static。床蓑奉來壓窃侏奉來?type propetries?嶄嗤初府。
泌惚珊?資誼厚謹購噐械楚議佚連賜宀?壓聞喘嶄資誼逸廁?萩臥心械楚才延楚?constants and variables?, 贋刈奉來?stored properties?吉准。
GRAMMAR OF A CONSTANT DECLARATION
constant-declaration → attributes opt declaration-specifiers opt letpattern-initializer-list pattern-initializer-list → pattern-initializer | pattern-initializer , pattern-initializer-list pattern-initializer → pattern initializer opt initializer → =expression
延楚蕗苧
延楚蕗苧辛參壓低議殻會戦蕗苧匯倖延楚?万參購囚忖var栖蕗苧。功象蕗苧延楚窃侏才峙議音揖?泌贋刈才柴麻 延楚才奉來?贋刈延楚才奉來酌篇?才床蓑延楚奉來?嗤彭音揖議蕗苧侘塀。?棋個序? 侭聞喘議蕗苧侘塀函畳噐延楚侭蕗苧議袈律才低嬉麻蕗苧議延楚窃侏。廣吭?低匆辛參壓亅咏蕗苧議貧和猟蕗苧奉來?峋秤歌需窃侏奉來蕗苧。
贋刈侏延楚才贋刈侏奉來
和中議侘塀蕗苧阻匯倖贋刈侏延楚賜贋刈侏延楚奉來var variable name: type = expression低辛參壓畠蕉?痕方坪?賜宀壓窃才潤更悶議蕗苧(context)嶄聞喘宸嶽侘塀栖蕗苧匯倖延楚。輝延楚參宸嶽侘塀 壓畠蕉賜宀匯倖痕方坪瓜蕗苧扮?万旗燕匯倖贋刈侏延楚。輝麿壓窃賜宀潤更悶嶄瓜蕗苧扮?麿旗燕匯倖贋刈侏延楚奉來。
更夛匂燕器塀辛參才械楚蕗苧屢曳?泌惚延楚兆頁匯倖圷怕窃侏?圷怕議耽匯?議兆忖脅勣才兜兵晒燕器塀匯崑。
屎泌兆忖匯劔?贋刈侏延楚議峙賜贋刈侏延楚奉來贋刈壓坪贋嶄。
柴麻侏延楚才柴麻侏奉來
泌和侘塀蕗苧匯倖匯倖贋刈侏延楚賜贋刈侏奉來?
var variable name: type { get { statements } set(setter name) { statements } }
低辛參壓畠蕉?痕方悶坪賜宀窃?潤更悶?旦訟?制婢蕗苧議貧和猟嶄聞喘宸嶽侘塀議蕗苧。 輝延楚參宸嶽侘塀壓畠蕉賜宀匯倖痕方坪瓜蕗苧扮?万旗燕匯倖柴麻侏延楚。輝麿壓窃?潤更悶?旦訟?制婢蕗苧議貧和猟 嶄嶄瓜蕗苧扮?麿旗燕匯倖柴麻侏延楚奉來。getter喘栖響函延楚峙?setter喘栖亟秘延楚峙。setter徨鞘頁辛僉夲議?峪嗤getter頁駅俶議?低辛參繍宸乂囂鞘 脅福待?峪頁酒汽議岷俊卦指萩箔峙?屎泌壓峪響柴麻奉來(read-only computed properites)嶄宙峰議椎劔。 徽頁泌惚低戻工阻匯倖setter囂鞘?低匆駅俶戻工匯倖getter囂鞘。
setter議兆忖才垈凄催坪議囂鞘頁辛僉議。泌惚低亟阻匯倖setter兆?万祥氏恬葎setter議歌方瓜聞喘。泌惚低音亟setter兆? setter議兜兵兆葎newValue?屎泌壓seter蕗苧堀芝(shorthand setter declaration)嶄戻欺議椎劔。
音崧贋刈侏延楚才贋刈侏奉來椎劔?柴麻侏奉來才柴麻侏延楚議峙音贋刈壓坪贋嶄。
資誼厚謹佚連?臥心厚謹購噐柴麻侏奉來議箭徨?萩臥心柴麻侏奉來(computed properties)匯准。
贋刈侏延楚酌篇匂才奉來酌篇匂
低辛參喘willset才didset酌篇匂栖蕗苧匯倖贋刈侏延楚賜奉來。匯倖淫根酌篇匂議贋刈侏延楚賜奉來梓泌和議侘塀蕗苧?
var variable name: type = expression { willSet(setter name) { statements } didSet(setter name { statements } }
低辛參壓畠蕉?痕方悶坪賜宀窃?潤更悶?旦訟?制婢蕗苧議貧和猟嶄聞喘宸嶽侘塀議蕗苧。 輝延楚參宸嶽侘塀壓畠蕉賜宀匯倖痕方坪瓜蕗苧扮?酌篇匂旗燕匯倖贋刈侏延楚酌篇匂? 輝麿壓窃?潤更悶?旦訟?制婢蕗苧議貧和猟嶄瓜蕗苧扮?酌篇匂旗燕奉來酌篇匂。低辛參葎癖栽議酌篇匂耶紗販採贋刈侏奉來。低匆辛參宥狛嶷亟徨窃奉來議圭塀葎癖栽議酌篇匂耶紗販採写覚議奉來 (涙胎頁贋刈侏珊頁柴麻侏議)?歌需嶷亟奉來酌篇匂(overriding properyt observers)。
兜兵晒燕器塀壓窃賜宀潤更悶議蕗苧嶄頁辛僉議?徽頁壓凪麿仇圭頁駅俶議。涙胎壓焚担仇圭蕗苧? 侭嗤淫根酌篇匂議延楚蕗苧脅駅倬嗤窃侏廣瞥(type annotation)。
輝延楚賜奉來議峙瓜個延扮?willset才didset酌篇匂戻工阻匯倖酌篇圭隈?癖輝議指哘?。 酌篇匂音氏壓延楚賜奉來及匯肝兜兵晒扮音氏瓜塰佩?麿断峪嗤壓峙瓜翌何兜兵晒囂鞘個延扮嘉氏瓜塰佩。
willset酌篇匂峪嗤壓延楚賜奉來峙瓜個延岻念塰佩。仟議峙恬葎匯倖械楚将狛狛willset酌篇匂?咀緩音辛參壓 willset囂鞘嶄個延万。didset酌篇匂壓延楚賜奉來峙瓜個延朔羨軸塰佩。才willset酌篇匂屢郡?葎阻參契峭低挽隼 俶勣資誼症議方象?症延楚峙賜宀奉來氏将狛didset酌篇匂。宸吭龍彭?泌惚低壓延楚賜奉來徭附議didiset酌篇匂囂鞘 嶄譜崔阻匯倖峙?低譜崔議仟峙氏函旗胡胡壓willset酌篇匂嶄将狛議椎倖峙。
壓willset才didset囂鞘嶄?setter兆才垈凄催議囂鞘頁辛僉議。泌惚低亟阻匯倖setter兆?万祥氏恬葎willset才didset議歌方瓜聞喘。泌惚低音亟setter兆? willset酌篇匂兜兵兆葎newvalue?didset酌篇匂兜兵兆葎oldvalue。
輝低戻工匯倖willset囂鞘扮?didset囂鞘頁辛僉議。揖劔議?壓低戻工阻匯倖didset囂鞘扮?willset囂鞘頁辛僉議。
資誼厚謹佚連?臥心泌採聞喘奉來酌篇匂議箭徨?萩臥心奉來酌篇匂(prpperty observers)匯准。
窃才床蓑延楚奉來
class購囚忖喘栖蕗苧窃議柴麻侏奉來。static購囚忖喘栖蕗苧窃議床蓑延楚奉來。窃才床蓑延楚壓窃侏奉來(type properties)嶄嗤峋聾網胎。GRAMMAR OF A VARIABLE DECLARATION
variable-declaration → variable-declaration-headpattern-initializer-list
variable-declaration → variable-declaration-head variable-name type-annotation code-block
variable-declaration → variable-declaration-head variable-name type-annotation getter-setter-block
variable-declaration → variable-declaration-head variable-name type-annotation getter-setter-keyword-block
variable-declaration → variable-declaration-head variable-name type-annotationinitializer opt willSet-didSet-block
variable-declaration-head → attributes opt declaration-specifiers opt var variable-name → identifier
getter-setter-block → {getter-clause setter-clause opt}
getter-setter-block → {setter-clause getter-clause}
getter-clause → attributes optgetcode-block
setter-clause → attributes opt set setter-name opt code-block
setter-name → (identifier)
getter-setter-keyword-block → {getter-keyword-clause setter-keyword-clause opt} getter-setter-keyword-block → {setter-keyword-clause getter-keyword-clause}
getter-keyword-clause → attributes opt get
setter-keyword-clause → attributes opt set
willSet-didSet-block → {willSet-clause didSet-clause opt}
willSet-didSet-block → {didSet-clause willSet-clause}
willSet-clause → attributes opt willSet setter-name opt code-block
didSet-clause → attributes opt didSet setter-name opt code-block
窃侏議艶兆蕗苧
窃侏艶兆議蕗苧辛參壓低議殻會戦葎匯倖厮贋壓議窃侏蕗苧匯倖艶兆。窃侏議艶兆蕗苧參購囚忖typealias蝕兵?恆儉泌和議 侘塀?typealias name = existing type輝匯倖窃侏瓜艶兆瓜蕗苧朔?低辛參壓低殻會議販採仇圭聞喘艶兆栖旗紋厮贋壓議窃侏。厮贋壓議窃侏辛參頁厮将瓜凋兆議 窃侏賜宀頁詞栽窃侏。窃侏議艶兆音恢伏仟議窃侏?万峪頁酒汽議才厮贋壓議窃侏恂兆各紋算。
臥心厚謹Protocol Associated Type Declaration.
GRAMMAR OF A TYPE ALIAS DECLARATION
typealias-declaration → typealias-head typealias-assignment typealias-head → typealias typealias-name typealias-name → identifier typealias-assignment → =type
痕方蕗苧
低辛參聞喘痕方蕗苧壓低議殻會戦哈秘仟議痕方。痕方辛參壓窃議貧和猟?潤更悶?旦訟?賜宀恬葎圭隈議亅咏嶄瓜蕗苧。 痕方蕗苧聞喘購囚忖func?恆儉泌和議侘塀?
func function name(parameters) -> return type { statements }
泌惚痕方音卦指販採峙?卦指窃侏辛參瓜策待?泌和侭幣?
func function name(parameters) { statements }
耽倖歌方議窃侏脅勣炎苧?万断音嬬瓜容僅竃栖。兜兵扮痕方議歌方頁械峙。壓宸乂歌方念中耶紗var聞万断撹葎延楚? 恬喘囃坪販採斤延楚議個延峪壓痕方悶坪嗤丼?賜宀喘inout聞議宸乂個延辛參壓距喘囃坪伏丼。 厚謹購噐in-out歌方議網胎?歌需in-out歌方(in-out parameters)痕方辛參聞喘圷怏窃侏恬葎卦指峙栖卦指謹倖延楚。
痕方協吶辛參竃孖壓総匯倖痕方蕗苧坪。宸嶽痕方瓜各恬nested痕方。厚謹購噐nested痕方議網胎?歌需nestde functions。
歌方兆
痕方議歌方頁匯倖參矯催蛍侯議双燕 。痕方距喘頁議延楚乏會駅倬才痕方蕗苧扮議歌方乏會匯崑。 恷酒汽議歌方双燕嗤彭泌和議侘塀?parameter name: parameter type斤噐痕方歌方栖讐?歌方兆壓痕方悶坪瓜聞喘?遇音頁壓痕方距喘扮聞喘。斤噐圭隈歌方?歌方兆壓痕方悶坪瓜聞喘? 揖扮匆壓圭隈瓜距喘扮恬葎炎禰瓜聞喘。乎圭隈議及匯倖歌方兆叙叙壓痕方悶坪瓜聞喘?祥崧痕方議歌方匯劔?訟箭栖讐?
func f(x: Int, y: String) -> String { return y + String(x) } f(7, "hello") // x and y have no name class C { func f(x: Int, y: String) -> String { return y + String(x) } } let c = C() c.f(7, y: "hello") // x短嗤兆各?y嗤兆各
低辛參梓泌和議侘塀?嶷亟歌方兆瓜聞喘議狛殻?external parameter name local parameter name: parameter type #parameter name: parameter type _ local parameter name: parameter type壓云仇歌方念凋兆議及屈兆各(second name)聞誼歌方嗤匯倖制婢兆。拝音揖噐云仇議歌方兆。 制婢歌方兆壓痕方瓜距喘扮駅倬瓜聞喘。斤哘議歌方壓圭隈賜痕方瓜距喘扮駅倬嗤制婢兆 。
壓歌方兆念侭亟議込錬憲催(#)旗燕彭宸倖歌方兆辛參揖扮恬葎翌何賜云悶歌方兆栖聞喘。吉揖噐慕亟曾肝云仇歌方兆。 壓痕方賜圭隈距喘扮?嚥凪斤哘議囂鞘駅倬淫根宸倖兆忖。
云仇歌方兆念議膿距忖憲(_)聞歌方壓痕方瓜距喘扮短嗤兆各。壓痕方賜圭隈距喘扮?嚥凪斤哘議囂鞘駅倬短嗤兆忖。
蒙歩窃侏議歌方
歌方辛參瓜策待?峙辛參頁延晒議?旺拝戻工匯倖兜兵峙?宸嶽圭隈嗤彭泌和議侘塀?_ : <#parameter type#. parameter name: parameter type... parameter name: parameter type = default argument value參膿距憲(_)凋兆議歌方苧鳩議壓痕方悶坪音嬬瓜恵諒。
匯倖參児粥窃侏兆議歌方?泌惚諸効彭眉倖泣(...)?瓜尖盾葎頁辛延歌方。匯倖痕方崛謹辛參啜嗤匯倖辛延歌方? 拝駅倬頁恷朔匯倖歌方。辛延歌方瓜恬葎乎児云窃侏兆議方怏栖心棋。訟箭栖讐?辛延歌方int...瓜心恂頁int[]。 臥心辛延歌方議聞喘箭徨?峋需辛延歌方(variadic parameters)匯准。
壓歌方議窃侏朔中嗤匯倖參吉催(=)銭俊議燕器塀?宸劔議歌方瓜心恂嗤彭公協燕器塀議兜編峙。泌惚歌方壓痕方 距喘扮瓜福待阻?祥氏聞喘兜兵峙。泌惚歌方短嗤覆楕?椎担万壓痕方距喘頁駅倬嗤徭失議兆忖.訟箭栖讐? f()才f(x:7)脅頁峪嗤匯倖延楚x議痕方議嗤丼距喘?徽頁f(7)頁掲隈議?咀葎万戻工阻匯倖峙遇音頁兆各。
蒙歩圭隈
參self俐蔑議旦訟賜潤更悶圭隈駅倬參mutating購囚忖恬葎痕方蕗苧遊。徨窃嶷亟議圭隈駅倬參override購囚忖恬葎痕方蕗苧遊。音喘override購囚忖嶷亟議圭隈?聞喘阻override購囚忖 抜旺短嗤嶷亟幻窃圭隈脅氏烏危。
才窃侏屢購遇音頁才窃侏糞箭屢購議圭隈駅倬壓static蕗苧議潤更參賜旦訟坪?呀賜頁參class購囚忖協吶議窃坪。
紳戦晒痕方才圭隈
紳戦晒痕方賜圭隈嗤彭泌和議侘塀?
func function name(parameters)(parameters) -> return type { statements }
參宸嶽侘塀協吶議痕方議卦指峙頁総匯倖痕方。訟箭栖傍?和中議曾倖蕗苧扮吉勺議:
func addTwoNumbers(a: Int)(b: Int) -> Int { return a + b } func addTwoNumbers(a: Int) -> (Int -> Int) { func addTheSecondNumber(b: Int) -> Int { return a + b } return addTheSecondNumber } addTwoNumbers(4)(5) // Returns 9
謹雫紳戦晒哘喘泌和GRAMMAR OF A FUNCTION DECLARATION
function-declaration → function-head function-name generic-parameter-clause optfunction-signature function-body function-head → attributes opt declaration-specifiers opt func function-name → identifier operator function-signature → parameter-clauses function-result opt function-result → ->attributes opt type function-body → code-block parameter-clauses → parameter-clause parameter-clauses opt parameter-clause → () (parameter-list...opt) parameter-list → parameter parameter,parameter-list parameter → inout opt let opt#optparameter-name local-parameter-name opt type-annotation default-argument-clause opt parameter → inoutoptvar#optparameter-namelocal-parameter-name opt type-annotationdefault-argument-clause opt parameter → attributes opt type parameter-name → identifier _ local-parameter-name → identifier _ default-argument-clause → =expression?
旦訟蕗苧
壓低議殻會戦聞喘旦訟蕗苧栖哈秘匯倖旦訟窃侏。旦訟蕗苧嗤曾嶽児云議侘塀?聞喘購囚忖enum栖蕗苧。旦訟蕗苧悶聞喘貫巣蝕兵議延楚——出恂旦訟並周?才販吭方楚議 蕗苧?淫凄柴麻侏奉來?糞箭圭隈?床蓑圭隈?更夛匂?窃侏艶兆?封崛凪麿旦訟?潤更悶?才窃。旦訟蕗苧音嬬 淫根裂更匂賜宀亅咏蕗苧。
音崧窃賜宀潤更悶。旦訟窃侏旺音戻工咨塀議兜兵更夛匂?侭嗤更夛匂駅倬?塋週追禱滇9行貽灊敏堽垸价蕎掎亠墜篷? 更夛匂?徽頁更夛狛殻叙輝更夛匂繍匯倖旦訟扮寂頼撹朔嘉畠何頼撹。
才潤更悶窃貌徽頁才窃音揖?旦訟頁峙窃侏?旦訟糞箭壓験嚠延楚賜械楚扮?賜宀瓜痕方距喘扮瓜鹸崙。 厚謹購噐峙窃侏議佚連?歌需潤更悶才旦訟脅頁峙窃侏(Structures and Enumerations Are Value Types)匯准。
低辛參制婢旦訟窃侏?屎泌壓制婢兆蕗苧(Extension Declaration)嶄網胎議匯劔。
販吭並周窃侏議旦訟
泌和議侘塀蕗苧阻匯倖淫根販吭窃侏旦訟扮寂議旦訟延楚
enum enumeration name { case enumeration case 1 case enumeration case 2(associated value types) }
宸嶽侘塀議旦訟蕗苧壓凪麿囂冱嶄嗤扮瓜出恂辛紛艶選栽(discrinminated)。宸嶽侘塀嶄?耽匯倖並周翠喇購囚忖case蝕兵?朔中諸俊彭匯倖賜謹倖參矯催蛍侯議旦訟並周。耽匯倖並周兆駅倬頁 鏡匯涙屈議。耽匯倖並周匆辛參峺協万侭贋刈議峺協窃侏議峙?宸乂窃侏壓購選峙窃侏議圷怕戦瓜峺協?羨軸慕亟壓並周 兆朔。資誼厚謹購噐購選峙窃侏議佚連才箭徨?萩臥心購選峙(associated values)匯准。
聞喘圻兵並周峙議旦訟
參和議侘塀蕗苧阻匯倖淫根屢揖児粥窃侏議旦訟並周議旦訟?
enum enumeration name: raw value type { case enumeration case 1 = raw value 1 case enumeration case 2 = raw value 2 }
壓宸嶽侘塀嶄?耽匯倖並周翠喇case購囚忖蝕兵?朔中諸俊彭匯倖賜謹倖參矯催蛍侯議旦訟並周。才及匯嶽侘塀議旦訟 並周音揖?宸嶽侘塀議旦訟並周淫根匯倖揖窃侏議児粥峙?出恂圻兵峙(raw value)。宸乂峙議窃侏壓圻兵峙窃侏(raw value type) 嶄瓜峺協?駅倬頁忖中貧議屁方?検泣方?忖憲賜宀忖憲堪。耽匯倖並周駅倬嗤率匯議兆忖?駅倬嗤匯倖率匯議兜兵峙。泌惚兜兵峙窃侏瓜峺協葎int?夸音駅葎並周?塋週綴原42毅? 万断氏咨塀議瓜炎葎峙0,1,2吉。耽匯倖短嗤瓜験峙議Int窃侏扮寂氏咨塀議験嚠匯倖兜兵峙?万断頁徭強弓奐議。
num ExampleEnum: Int { case A, B, C = 5, D }
壓貧中議箭徨嶄?ExampleEnum.A議峙頁0?ExampleEnum.B議峙頁。咀葎ExampleEnum.C議峙瓜?塋週追莇34?5?咀緩 ExampleEnum.D議峙氏徭強奐海葎6.旦訟並周議兜兵峙辛參距喘圭隈roRaw資誼?泌ExampleEnum.B.toRaw()。低匆辛參宥狛距喘fromRaw圭隈栖聞喘兜兵峙孀欺 凪斤哘議並周?旺卦指匯倖辛僉議並周。臥心厚謹佚連才資函兜兵峙窃侏並周議佚連?歌堋兜兵峙(raw values)。
資誼旦訟並周
聞喘泣(.)栖哈喘旦訟窃侏議並周?泌 EnumerationType.EnumerationCase。輝旦訟窃侏辛參貧和猟容僅竃扮?低辛參 福待万(.挽隼俶勣)?歌孚旦訟囂隈(Enumeration Syntax)才?塋蹴不臼躊?(Implicit Member Expression).聞喘switch囂鞘栖殊刮旦訟並周議峙?屎泌聞喘switch囂鞘謄塘旦訟峙?Matching Enumeration Values with a Switch Statement)匯准宙峰議椎劔。
旦訟窃侏頁庁塀謄塘(pattern-matched)議?才凪屢郡議頁switch囂鞘case翠嶄旦訟並周謄塘?壓旦訟並周窃侏(Enumeration Case Pattern)嶄嗤宙峰。
GRAMMAR OF AN ENUMERATION DECLARATION
enum-declaration → attributesoptunion-style-enum attributesoptraw-value-style-enum union-style-enum → enum-namegeneric-parameter-clauseopt{union-style-enum-membersopt} union-style-enum-members → union-style-enum-memberunion-style-enum-membersopt union-style-enum-member → declaration union-style-enum-case-clause union-style-enum-case-clause → attributesoptcaseunion-style-enum-case-list union-style-enum-case-list → union-style-enum-case union-style-enum-case,union-style-enum-case-list union-style-enum-case → enum-case-nametuple-typeopt enum-name → identifier enum-case-name → identifier raw-value-style-enum → enum-namegeneric-parameter-clauseopt:type-identifier{raw-value-style-enum-membersopt} raw-value-style-enum-members → raw-value-style-enum-memberraw-value-style-enum-membersopt raw-value-style-enum-member → declaration raw-value-style-enum-case-clause raw-value-style-enum-case-clause → attributesoptcaseraw-value-style-enum-case-list raw-value-style-enum-case-list → raw-value-style-enum-case raw-value-style-enum-case,raw-value-style-enum-case-list raw-value-style-enum-case → enum-case-nameraw-value-assignmentopt raw-value-assignment → =literal
潤更悶蕗苧
聞喘潤更悶蕗苧辛參壓低議殻會戦哈秘匯倖潤更悶窃侏。潤更悶蕗苧聞喘struct購囚忖?恆儉泌和議侘塀?
struct structure name: adopted protocols { declarations }
潤更悶坪淫根巣賜謹倖蕗苧。宸乂蕗苧辛參淫凄贋刈侏才柴麻侏奉來?床蓑奉來?糞箭圭隈?床蓑圭隈?更夛匂? 窃侏艶兆?封崛凪麿潤更悶?窃?才旦訟蕗苧。潤更悶蕗苧音嬬淫根裂更匂賜宀亅咏蕗苧。峋聾網胎才淫根謹嶽潤更悶 蕗苧議糞箭?歌需窃才潤更悶匯准。潤更悶辛參淫根販吭方楚議亅咏?徽頁音嬬写覚徭窃?旦訟賜宀凪麿潤更悶。
嗤眉嶽圭隈辛參幹秀匯倖蕗苧狛議潤更悶糞箭?
-距喘潤更悶坪蕗苧議更夛匂?歌孚更夛匂(initializers)匯准。
—泌惚短嗤蕗苧更夛匂?距喘潤更悶議幟倖更夛匂?峋秤歌需Memberwise Initializers for Structure Types.
—泌惚短嗤蕗苧裂更匂?潤更悶議侭嗤奉來脅嗤兜兵峙?距喘潤更悶議潮範更夛匂?峋秤歌需潮範更夛匂(Default Initializers).
潤更悶議更夛狛殻歌需兜兵晒(initiaization)匯准。
潤更悶糞箭奉來辛參喘泣(.)栖資誼?峋秤歌需資誼奉來(Accessing Properties)匯准。
潤更悶頁峙窃侏?潤更悶議糞箭壓瓜験嚠延楚賜械楚?瓜痕方距喘扮瓜鹸崙。資誼購噐峙窃侏厚謹佚連?歌需 潤更悶才旦訟脅頁峙窃侏(Structures and Enumerations Are Value Types)匯准。
低辛參聞喘制婢蕗苧栖制婢潤更悶窃侏議佩葎?歌需制婢蕗苧(Extension Declaration).
GRAMMAR OF A STRUCTURE DECLARATION
struct-declaration → attributesoptstructstruct-namegeneric-parameter-clauseopttype-inheritance-clauseoptstruct-body struct-name → identifier struct-body → {declarationsopt}
窃蕗苧
低辛參壓低議殻會嶄聞喘窃蕗苧栖哈秘匯倖窃。窃蕗苧聞喘購囚忖class?恆儉泌和議侘塀?
class class name: superclass, adopted protocols { declarations }
匯倖窃坪淫根巣賜謹倖蕗苧。宸乂蕗苧辛參淫凄贋刈侏才柴麻侏奉來?糞箭圭隈?窃圭隈?更夛匂?汽鏡議裂更匂圭隈? 窃侏艶兆?封崛凪麿潤更悶?窃?才旦訟蕗苧。窃蕗苧音嬬淫根亅咏蕗苧。峋聾網胎才淫根謹嶽窃蕗苧議糞箭?歌需窃才 潤更悶匯准。匯倖窃峪嬬写覚匯倖幻窃?階窃?徽頁辛參淫根販吭方楚議亅咏。宸乂階窃及匯肝壓type-inheritance-clause竃孖?恆儉販吭亅咏。
屎泌壓兜兵晒蕗苧(Initializer Declaration)霧式議椎劔?窃辛參嗤峺協才圭宴議更夛匂。輝低蕗苧販匯嶄更夛匂扮? 低辛參聞喘requierd延楚栖炎芝更夛匂?勣箔販吭徨窃栖嶷亟万。峺協窃議更夛匂駅倬兜兵晒窃侭嗤議厮蕗苧議奉來? 万駅倬壓徨窃更夛匂距喘念瓜峇佩。
窃辛參嶷亟奉來?圭隈才万議階窃議更夛匂。嶷亟議圭隈才奉來駅倬參override炎廣。
埋隼階窃議奉來才圭隈蕗苧辛參瓜輝念窃写覚?徽頁階窃蕗苧議峺協更夛匂抜音嬬。宸吭龍彭?泌惚輝念窃嶷亟阻階窃 議侭嗤峺協更夛匂?万祥写覚阻階窃議圭宴更夛匂。Swift議窃旺音頁写覚徭匯倖畠蕉児粥窃。
嗤曾嶽圭隈栖幹秀厮蕗苧議窃議糞箭?
- 距喘窃議匯倖更夛匂?歌需更夛匂(initializers)。
- 泌惚短嗤蕗苧更夛匂?遇拝窃議侭嗤奉來脅瓜験嚠阻兜兵峙?距喘窃議潮範更夛匂?歌需潮範更夛匂(default initializers).
窃糞箭奉來辛參喘泣(.)栖資誼?峋秤歌需資誼奉來(Accessing Properties)匯准。
窃頁哈喘窃侏?輝瓜験嚠械楚賜延楚?痕方距喘扮?窃議糞箭頁瓜哈喘?遇音頁鹸崙。資誼厚謹購噐哈喘窃侏議佚連? 潤更悶才旦訟脅頁峙窃侏(Structures and Enumerations Are Value Types)匯准。
低辛參聞喘制婢蕗苧栖制婢窃議佩葎?歌需制婢蕗苧(Extension Declaration).
GRAMMAR OF A CLASS DECLARATION
class-declaration → attributesoptclassclass-namegeneric-parameter-clauseopttype-inheritance-clauseoptclass-body class-name → identifier class-body → {declarationsopt}
亅咏蕗苧(translated by 弌匯)
匯倖亅咏蕗苧葎低議殻會哈秘匯倖凋兆阻議亅咏窃侏。亅咏蕗苧聞喘 protocol 購囚簡栖序佩蕗苧旺嗤和中宸劔議侘塀?
protocol protocol name: inherited protocols {
protocol member declarations
}
亅咏窃侏辛參貫載謹凪万亅咏椎写覚。輝匯倖亅咏窃侏貫凪万亅咏椎写覚議扮昨?栖徭凪万亅咏議侭嗤勣箔祥鹿栽阻?遇拝貫輝念亅咏写覚議販採窃侏駅倬憲栽侭嗤議宸乂勣箔。斤噐泌採聞喘亅咏写覚議箭徨?臥心亅咏写覚
廣吭?低匆辛參聞喘亅咏栽撹窃侏鹿栽謹倖亅咏議匯崑來勣箔?峋秤歌需亅咏栽撹窃侏才亅咏栽撹低辛參宥狛寡喘壓窃侏議制婢蕗苧嶄議亅咏栖葎岻念蕗苧議窃侏耶紗亅咏匯崑來。壓制婢嶄低駅倬糞孖侭嗤寡喘亅咏議勣箔。泌惚乎窃侏厮将糞孖阻侭嗤議勣箔?低辛參斑宸倖制婢蕗苧議麼籾藻腎。
潮範仇?憲栽蝶匯倖亅咏議窃侏駅倬糞孖侭嗤蕗苧壓亅咏嶄議奉來、圭隈才現奉重云。匆祥頁傍?低辛參喘optional奉來炎廣宸乂亅咏撹埀蕗苧參峺協万断議匯崑來窃侏糞孖頁辛僉議。optional奉來叙叙辛參喘噐聞喘objc奉來炎芝狛議亅咏。宸劔議潤惚祥頁叙叙窃窃侏辛參寡喘旺憲栽淫根辛僉撹埀勣箔議亅咏。厚謹購噐泌採聞喘optional奉來議佚連式泌採恵諒辛僉亅咏撹埀議峺擬——曳泌輝低音嬬刃協頁倦匯崑來議窃侏糞孖阻万断——歌需辛僉亅咏勣箔
葎阻尫崙亅咏議寡喘叙叙寞斤窃窃侏?俶勣聞喘class_protocol奉來炎芝屁倖亅咏蕗苧。販吭写覚徭炎芝嗤class_protocol奉來亅咏議亅咏脅辛參崘嬬仇叙嬬瓜窃窃侏寡喘。
廣吭?泌惚亅咏厮将喘object奉來炎芝阻?class_protocol奉來祥咨來仇哘喘噐乎亅咏?短嗤駅勣壅苧鳩仇聞喘class_protocol奉來栖炎芝乎亅咏阻。亅咏頁凋兆議窃侏?咀緩万断辛參參総匯倖凋兆窃侏竃孖壓低旗鷹議侭嗤仇圭?祥崧亅咏窃侏戦網胎議椎劔。隼遇低音嬬更夛匯倖亅咏議糞箭?咀葎亅咏糞縞貧音戻工万断峺協議勣箔議糞孖。
低辛參聞喘亅咏栖蕗苧匯倖窃議旗尖議圭隈賜宀哘乎糞孖議潤更?祥崧溜熔(旗尖)庁塀宙峰議椎劔。
亅咏蕗苧議囂隈 protocol-declaration → attributesoptprotocolprotocol-nametype-inheritance-clauseoptprotocol-body protocol-name → identifier protocol-body → {protocol-member-declarationsopt} protocol-member-declaration → protocol-property-declaration protocol-member-declaration → protocol-method-declaration protocol-member-declaration → protocol-initializer-declaration protocol-member-declaration → protocol-subscript-declaration protocol-member-declaration → protocol-associated-type-declaration protocol-member-declarations → protocol-member-declarationprotocol-member-declarationsopt
亅咏奉來蕗苧
亅咏蕗苧阻匯崑來窃侏駅倬壓亅咏蕗苧議麼悶戦宥狛哈秘匯倖亅咏奉來蕗苧栖糞孖匯倖奉來。亅咏奉來蕗苧嗤匯嶽蒙歩議窃侏蕗苧侘塀?
var property name: type { get set }
getter才setter勣箔辛參宥狛匯崑來窃侏參光嶽圭塀諾怎。泌惚奉來蕗苧淫根get才set購囚簡?匯崑來窃侏祥辛參喘辛響亟?糞孖阻getter才setter?議贋刈侏延楚奉來賜柴麻侏奉來?徽頁奉來音嬬參械楚奉來賜峪響柴麻侏奉來糞孖。泌惚奉來蕗苧叙叙淫根get購囚簡議三?万辛參恬葎販吭窃侏議奉來瓜糞孖。曳泌傍糞孖阻亅咏議奉來勣箔議匯崑來窃侏?歌需奉來勣箔
厚謹歌需延楚蕗苧
亅咏奉來蕗苧囂隈 protocol-property-declaration → variable-declaration-headvariable-nametype-annotationgetter-setter-keyword-block
亅咏圭隈蕗苧
亅咏蕗苧阻匯崑來窃侏駅倬壓亅咏蕗苧議麼悶戦宥狛哈秘匯倖亅咏圭隈蕗苧栖糞孖匯倖圭隈. 亅咏圭隈蕗苧才痕方圭隈蕗苧嗤彭屢揖議侘塀?淫根泌和曾訳号夸?麿断音淫凄痕方悶?低音嬬壓窃議蕗苧坪葎麿断議 歌方戻工兜兵峙.訟箭栖傍?憲栽議窃侏峇佩亅咏駅俶議圭隈。歌需駅俶圭隈匯准。聞喘購囚忖class辛參壓亅咏蕗苧嶄蕗苧匯倖窃賜駅俶議床蓑圭隈。峇佩宸乂圭隈議窃匆喘購囚忖class蕗苧。 屢郡議?峇佩宸乂圭隈議潤更悶駅倬參購囚忖static蕗苧。泌惚低?聞喘制婢圭隈?壓制婢窃扮聞喘class購囚忖? 壓制婢潤更悶扮聞喘static購囚忖。
厚謹萩歌堋痕方蕗苧。
GRAMMAR OF A PROTOCOL METHOD DECLARATION
protocol-method-declaration → function-headfunction-namegeneric-parameter-clauseoptfunction-signature
亅咏更夛匂蕗苧
亅咏蕗苧阻匯崑來窃侏駅倬壓亅咏蕗苧議麼悶戦宥狛哈秘匯倖亅咏更夛匂蕗苧栖糞孖匯倖更夛匂。亅咏更夛匂蕗苧 茅阻音淫根更夛匂悶翌?才更夛匂蕗苧嗤彭屢揖議侘塀?厚謹萩歌堋更夛匂蕗苧。
GRAMMAR OF A PROTOCOL INITIALIZER DECLARATION
protocol-initializer-declaration → initializer-headgeneric-parameter-clauseoptparameter-clause
亅咏現奉重云蕗苧
亅咏蕗苧阻匯崑來窃侏駅倬壓亅咏蕗苧議麼悶戦宥狛哈秘匯倖亅咏現奉重云蕗苧栖糞孖匯倖現奉重云。亅咏奉來蕗苧 斤現奉重云蕗苧嗤匯倖蒙歩議侘塀?subscript (parameters) -> return type { get set }現奉重云蕗苧峪葎才亅咏匯崑議窃侏蕗苧阻駅俶議恷弌方楚議議getter才setter。泌惚現奉重云賦苧淫根get才set購囚忖? 匯崑議窃侏匆駅倬嗤匯倖getter才setter囂鞘。泌惚現奉重云蕗苧峙淫根get購囚忖?匯崑議窃侏駅倬崛富淫根匯倖 getter囂鞘?辛參僉夲頁倦淫根setter囂鞘。
厚謹歌堋現奉重云蕗苧。
GRAMMAR OF A PROTOCOL SUBSCRIPT DECLARATION
protocol-subscript-declaration → subscript-headsubscript-resultgetter-setter-keyword-block
亅咏屢購窃侏蕗苧
亅咏蕗苧屢購窃侏聞喘購囚忖typealias。屢購窃侏葎恬葎亅咏蕗苧議匯何蛍議窃侏戻工阻匯倖艶兆。屢購窃侏才歌方 囂鞘嶄議窃侏歌方載屢貌?徽頁万断壓蕗苧議亅咏嶄淫根self購囚忖。壓宸乂囂鞘嶄?self峺旗才亅咏匯崑議辛嬬議窃侏。 資誼厚謹佚連才箭徨?臥心屢購窃侏賜窃侏艶兆蕗苧。GRAMMAR OF A PROTOCOL ASSOCIATED TYPE DECLARATION
protocol-associated-type-declaration → typealias-headtype-inheritance-clauseopttypealias-assignmentopt
更夛匂蕗苧
更夛匂蕗苧氏葎殻會坪議窃?潤更悶賜旦訟哈秘更夛匂。更夛匂聞喘購囚忖Init栖蕗苧?恆儉曾訳児云侘塀。潤更悶?旦訟?窃辛參嗤販吭方楚議更夛匂?徽頁窃議更夛匂議号夸才佩葎頁音匯劔議。音崧潤更悶才旦訟椎劔?窃 嗤曾嶽潤更悶?designed initializers 才convenience initializers?歌需更夛匂匯准。
泌和議侘塀蕗苧阻潤更悶?旦訟才窃議峺協更夛匂?
init(parameters) { statements }
窃議峺協更夛匂繍窃議侭嗤奉來岷俊兜兵晒。泌惚窃嗤階窃?万音嬬距喘乎窃議凪麿更夛匂,万峪嬬距喘階窃議匯倖 峺協更夛匂。泌惚乎窃貫万議階窃侃写覚阻販採奉來?宸乂奉來壓輝念窃坪瓜験峙賜俐蔑扮?駅倬揮填喘匯倖階窃議 峺協更夛匂。峺協更夛匂辛參壓窃蕗苧議貧和猟嶄蕗苧?咀緩万音嬬喘制婢蕗苧議圭隈紗秘匯倖窃嶄。
潤更悶才旦訟議更夛匂辛參揮填喘凪麿議厮蕗苧議更夛匂?栖溜熔凪嶄匯倖諮畠何序佩兜兵晒狛殻。
參購囚忖convenience栖蕗苧匯倖窃議宴旋更夛匂?
convenience init(parameters) { statements }
宴旋更夛匂辛參繍兜兵晒狛殻溜熔公総匯倖宴旋更夛匂賜窃議匯倖峺協更夛匂。宸吭龍彭?窃議兜兵晒狛殻駅倬 參匯倖繍侭嗤窃奉來頼畠兜兵晒議峺協更夛匂議距喘恬葎潤崩。宴旋更夛匂音嬬距喘階窃議更夛匂。低辛參聞喘requierd購囚忖?繍宴旋更夛匂才峺協更夛匂炎芝葎耽倖徨窃議更夛匂脅駅倬啜嗤議。咀葎峺協更夛匂 音瓜徨窃写覚?麿断駅倬瓜羨軸峇佩。輝徨窃岷俊峇佩侭嗤階窃議峺協更夛匂(賜聞喘宴旋更夛匂嶷亟峺協更夛匂)扮? 駅俶議宴旋更夛匂辛參瓜咨塀議峇佩?呀辛參瓜写覚。音崧圭隈?現奉重云椎劔?低音俶勣葎宸乂嶷亟議更夛匂炎廣 overrride購囚忖。
臥心厚謹購噐音揖蕗苧圭隈議更夛匂議箭徨?歌堋更夛狛殻匯准。
GRAMMAR OF AN INITIALIZER DECLARATION
initializer-declaration → initializer-headgeneric-parameter-clauseoptparameter-clauseinitializer-body initializer-head → attributesoptconvenienceoptinit initializer-body → code-block
裂更蕗苧
裂更蕗苧葎窃蕗苧阻匯倖裂更匂。裂更匂短嗤歌方?恆儉泌和議鯉塀?
deinit { statements }
輝窃短嗤販採囂鞘扮繍勣瓜瞥慧扮?裂更匂氏徭強議瓜距喘。裂更匂壓窃議蕗苧悶坪峪嬬瓜蕗苧匯肝——徽頁音嬬壓 窃議制婢蕗苧坪?耽倖窃恷謹峪嬬嗤匯倖。徨窃写覚阻万議階窃議裂更匂?壓徨窃繍勣瓜瞥慧扮咨塀議距喘。徨窃壓侭嗤裂更匂瓜峇佩頼穎念音氏瓜瞥慧。
裂更匂音氏瓜岷俊距喘。
臥心箭徨才泌採壓窃議蕗苧嶄聞喘裂更匂?歌需裂更狛殻匯准 。
GRAMMAR OF A DEINITIALIZER DECLARATION
deinitializer-declaration → attributesoptdeinitcode-block
制婢蕗苧
制婢蕗苧喘噐制婢匯倖孖贋議窃?潤更悶?旦訟議佩葎。制婢蕗苧參購囚忖extension蝕兵?恆儉泌和議号夸?
extension type: adopted protocols { declarations }
匯倖制婢蕗苧悶淫凄巣倖賜謹倖蕗苧。宸乂蕗苧辛參淫凄柴麻侏奉來?柴麻侏床蓑奉來?糞箭圭隈?床蓑才窃圭隈?更夛匂? 現奉重云蕗苧?封崛凪麿潤更悶?窃?才旦訟蕗苧。制婢蕗苧音嬬淫根裂更匂?亅咏蕗苧?贋刈侏奉來?奉來酌霞匂賜凪麿 議制婢奉來。峋聾網胎才臥心淫根謹嶽制婢蕗苧議糞箭?歌需制婢匯准。制婢蕗苧辛參?孖贋議窃?潤更悶?旦訟坪耶紗匯崑議亅咏。制婢蕗苧音嬬?匯倖窃嶄耶紗写覚議窃?咀緩 type-inheritance-clause頁匯倖峪淫根亅咏双燕議制婢蕗苧。
奉來?圭隈?孖贋窃侏議更夛匂音嬬瓜万断窃侏議制婢侭嶷亟。
制婢蕗苧辛參淫根更夛匂蕗苧?宸吭龍彭?泌惚低制婢議窃侏壓凪麿庁翠嶄協吶?更夛匂蕗苧駅倬溜熔総匯倖壓 椎倖庁翠戦蕗苧議更夛匂栖如輝議兜兵晒。
GRAMMAR OF AN EXTENSION DECLARATION
extension-declaration → extensiontype-identifiertype-inheritance-clauseoptextension-body extension-body → {declarationsopt}
現奉重云蕗苧(translated by 爽)
現奉重云喘噐?蒙協窃侏耶紗現奉重云屶隔?宥械葎恵諒鹿栽?双燕才會双議圷殆扮戻工囂隈宴旋。現奉重云蕗苧聞喘購囚忖subscript?蕗苧侘塀泌和?subscript (parameter) -> (return type){ get{ statements } set(setter name){ statements } } 現奉重云蕗苧峪嬬壓窃?潤更悶?旦訟?制婢才亅咏蕗苧議貧和猟序佩蕗苧。延楚(parameters)峺協匯倖賜謹倖喘噐壓屢購窃侏議現奉重云嶄恵諒圷殆議沫哈?箭泌?燕器塀object[i]嶄議i?。勝砿喘噐圷殆恵諒議沫哈辛參頁販吭窃侏議?徽頁耽倖延楚駅倬淫根匯倖喘噐峺協耽嶽沫哈窃侏議窃侏炎廣。卦指窃侏(return type)峺協瓜恵諒議圷殆議窃侏。
才柴麻來奉來匯劔?現奉重云蕗苧屶隔斤恵諒圷殆議響亟荷恬。getter喘噐響函峙?setter喘噐亟秘峙。setter徨鞘頁辛僉議?輝叙俶勣匯倖getter徨鞘扮?辛參繍屈宀脅策待拝岷俊卦指萩箔議峙軸辛。匆祥頁傍?泌惚聞喘阻setter徨鞘?祥駅倬聞喘getter徨鞘。
setter議兆忖才撃液議凄催頁辛僉議。泌惚聞喘阻setter兆各?万氏瓜輝恂勧公setter議延楚議兆各。泌惚音聞喘setter兆各?椎担勧公setter議延楚議兆各潮範頁value。setter兆各議窃侏駅倬嚥卦指窃侏(return type)議窃侏屢揖。
辛參壓現奉重云蕗苧議窃侏嶄?辛參嶷墮現奉重云?峪勣延楚(parameters)賜卦指窃侏(return type)嚥枠念議音揖軸辛。緩扮?駅倬聞喘override購囚忖蕗苧椎倖瓜顕固議現奉重云。(廣?挫岱亜?欺久頁嶷墮珊頁顕固??)
揖劔辛參壓亅咏蕗苧議貧和猟嶄蕗苧現奉重云?Protocol Subscript Declaration嶄嗤侭宙峰。
厚謹購噐現奉重云才現奉重云蕗苧議箭徨?萩歌深Subscripts。
GRAMMAR OF A SUBSCRIPT DECLARATION
subscript-declaration → subscript-headsubscript-resultcode-block subscript-declaration → subscript-headsubscript-resultgetter-setter-block subscript-declaration → subscript-headsubscript-resultgetter-setter-keyword-block subscript-head → attributesoptsubscriptparameter-clause subscript-result → ->attributesopttype
塰麻憲蕗苧(translated by 爽)
塰麻憲蕗苧氏?殻會嶄哈秘嶄弸、念弸賜朔弸塰麻憲?万聞喘貧和猟購囚忖operator蕗苧。 辛參蕗苧眉嶽音揖議弸來?嶄弸、念弸才朔弸。荷恬憲議弸來宙峰阻荷恬憲嚥万議荷恬方議屢斤了崔。 塰麻憲蕗苧嗤眉嶽児云侘塀?耽嶽弸來光匯嶽。塰麻憲議弸來宥狛壓operator才塰麻憲岻寂耶紗貧和猟購囚忖infix?prefix賜postfix栖峺協。耽嶽侘塀嶄?塰麻憲議兆忖峪嬬淫根Operators嶄協吶議塰麻憲忖憲。和中議宸嶽侘塀蕗苧阻匯倖仟議嶄弸塰麻憲?
operator infix operator name{ precedence precedence level associativity associativity }嶄弸塰麻憲頁屈圷塰麻憲?万辛參瓜崔噐曾倖荷恬方岻寂?曳泌燕器塀1 + 2 嶄議紗隈塰麻憲(+)。
嶄弸塰麻憲辛參辛僉仇峺協單枠雫?潤栽來?賜曾宀揖扮峺協。
塰麻憲議單枠雫辛參峺協壓短嗤凄催淫律議秤趨和?塰麻憲嚥万議荷恬方泌採諸畜鰯協議。辛參聞喘貧和猟購囚忖precedence旺單枠雫(precedence level)匯軟栖峺協匯倖塰麻憲議單枠雫。單枠雫辛參頁0欺255岻寂議販採匯倖方忖(噴序崙屁方)?嚥噴序崙屁方忖中楚音揖議頁?万音辛參淫根販採和皿?忖憲。勝砿單枠雫頁匯倖蒙協議方忖?徽万叙喘恬嚥総匯倖塰麻憲曳熟(寄弌)。匆祥頁傍?匯倖荷恬方辛參揖扮瓜曾倖塰麻憲聞喘扮?箭泌2 + 3 * 5?單枠雫厚互議塰麻憲繍單枠嚥荷恬方鰯協。
塰麻憲議潤栽來辛參峺協壓短嗤凄催淫律議秤趨和?單枠雫屢揖議塰麻憲參採嶽乏會瓜蛍怏議。辛參聞喘貧和猟購囚忖associativity旺潤栽來(associativity)匯軟栖峺協匯倖塰麻憲議潤栽來?凪嶄潤栽來辛參傍頁貧和猟購囚忖left?right賜none嶄議販採匯倖。恣潤栽塰麻憲參貫恣欺嘔議侘塀蛍怏。箭泌?受隈塰麻憲(-)醤嗤恣潤栽來?咀緩4 - 5 - 6瓜參(4 - 5) - 6議侘塀蛍怏?凪潤惚葎-7。 嘔潤栽塰麻憲參貫嘔欺恣議侘塀蛍怏?斤噐譜崔葎none議掲潤栽塰麻憲?万断音參販採侘塀蛍怏。醤嗤屢揖單枠雫議掲潤栽塰麻憲?音辛參札屢惣俊。箭泌?燕器塀1 < 2 < 3掲隈議。
蕗苧扮音峺協販採單枠雫賜潤栽來議嶄弸塰麻憲?万断議單枠雫氏瓜兜兵晒葎100?潤栽來瓜兜兵晒葎none。
和中議宸嶽侘塀蕗苧阻匯倖仟議念弸塰麻憲?
operator prefix operator name{}諸効壓荷恬方念円議念弸塰麻憲(prefix operator)頁匯圷塰麻憲?箭泌燕器塀++i嶄議念弸弓奐塰麻憲(++)。
念弸塰麻憲議蕗苧嶄音峺協單枠雫。念弸塰麻憲頁掲潤栽議。
和中議宸嶽侘塀蕗苧阻匯倖仟議朔弸塰麻憲?
operator postfix operator name{}諸効壓荷恬方朔円議朔弸塰麻憲(postfix operator)頁匯圷塰麻憲?箭泌燕器塀i++嶄議念弸弓奐塰麻憲(++)。
才念弸塰麻憲匯劔?朔弸塰麻憲議蕗苧嶄音峺協單枠雫。朔弸塰麻憲頁掲潤栽議。
蕗苧阻匯倖仟議塰麻憲參朔?俶勣蕗苧匯倖効宸倖塰麻憲揖兆議痕方栖糞孖宸倖塰麻憲。泌採糞孖匯倖仟議塰麻憲?萩歌深Custom Operators。
GRAMMAR OF AN OPERATOR DECLARATION
operator-declaration → prefix-operator-declaration postfix-operator-declaration >infix-operator-declaration prefix-operator-declaration → operator prefix operator{} postfix-operator-declaration → operator postfix operator{} infix-operator-declaration → operatorinfixoperator{infix-operator-attributesopt} infix-operator-attributes → precedence-clauseoptassociativity-clauseopt precedence-clause → precedenceprecedence-level precedence-level → Digit 0 through 255 associativity-clause → associativityassociativity associativity → left right none
<貧匯准
和匯准>