遍匈 / Swift / Swift縮殻 /

Swift更夛狛殻

<貧匯准 和匯准>
更夛狛殻頁葎阻聞喘蝶倖窃、潤更悶賜旦訟窃侏議糞箭遇序佩議彈姥狛殻。宸倖狛殻淫根阻葎糞箭嶄議耽倖奉來譜崔兜兵峙才葎凪峇佩駅勣議彈姥才兜兵晒販暦。

更夛狛殻頁宥狛協吶更夛匂?Initializers?栖糞孖議?宸乂更夛匂辛參心恂頁喘栖幹秀蒙協窃侏糞箭議蒙歩圭隈。嚥 Objective-C 嶄議更夛匂音揖?Swift 議更夛匂涙俶卦指峙?万断議麼勣販暦頁隠屬仟糞箭壓及匯肝聞喘念頼撹屎鳩議兜兵晒。

窃糞箭匆辛參宥狛協吶裂更匂?deinitializer?壓窃糞箭瞥慧岻念峇佩蒙協議賠茅垢恬。?阻盾厚謹購噐裂更匂議坪否?萩歌深裂更狛殻

贋刈侏奉來議兜兵験峙

窃才潤更悶壓糞箭幹秀扮?駅倬葎侭嗤贋刈侏奉來譜崔栽癖議兜兵峙。贋刈侏奉來議峙音嬬侃噐匯倖隆岑議彜蓑。

低辛參壓更夛匂嶄葎贋刈侏奉來験兜峙?匆辛參壓協吶奉來扮葎凪譜崔潮範峙。參和嫗准繍峋聾初府宸曾嶽圭隈。
廣吭?輝低葎贋刈侏奉來譜崔潮範峙賜宀壓更夛匂嶄葎凪験峙扮?万断議峙頁瓜岷俊譜崔議?音氏乾窟販採奉來鉱霞匂?property observers?。

更夛匂

更夛匂壓幹秀蝶蒙協窃侏議仟糞箭扮距喘。万議恷酒侘塀窃貌噐匯倖音揮販採歌方議糞箭圭隈?參購囚忖init凋兆。

和中箭徨嶄協吶阻匯倖喘栖隠贋鯖箆梁業議潤更悶Fahrenheit?万啜嗤匯倖Double窃侏議贋刈侏奉來temperature?
struct Fahrenheit {
 var temperature: Double
 init() {
 temperature = 32.0
 }
}
var f = Fahrenheit()
println("The default temperature is \(f.temperature)° Fahrenheit")
// 補竃 "The default temperature is 32.0° Fahrenheit”
宸倖潤更悶協吶阻匯倖音揮歌方議更夛匂init?旺壓戦中繍贋刈侏奉來temperature議峙兜兵晒葎32.0?鯖父箆業和邦議甥泣?。

潮範奉來峙

泌念侭峰?低辛參壓更夛匂嶄葎贋刈侏奉來譜崔兜兵峙?揖劔?低匆辛參壓奉來蕗苧扮葎凪譜崔潮範峙。
廣吭?泌惚匯倖奉來悳頁聞喘揖匯倖兜兵峙?辛參葎凪譜崔匯倖潮範峙。涙胎協吶潮範峙珊頁壓更夛匂嶄験峙?恷嶮万断糞孖議丼惚頁匯劔議?峪音狛潮範峙効奉來更夛狛殻潤栽議厚諸畜。聞喘潮範峙嬬斑低議更夛匂厚酒準、厚賠漣?拝嬬宥狛潮範峙徭強容擬竃奉來議窃侏?揖扮?万匆嬬斑低割蛍旋喘潮範更夛匂、更夛匂写覚?朔偬嫗准繍讐欺?吉蒙來。
低辛參聞喘厚酒汽議圭塀壓協吶潤更悶Fahrenheit扮葎奉來temperature譜崔潮範峙?
struct Fahrenheit {
 var temperature = 32.0
}

協崙晒更夛狛殻

低辛參宥狛補秘歌方才辛僉奉來窃侏栖協崙更夛狛殻?匆辛參壓更夛狛殻嶄俐個械楚奉來。宸乂脅繍壓朔中嫗准嶄戻欺。

更夛歌方

低辛參壓協吶更夛匂扮戻工更夛歌方?葎凪戻工協崙晒更夛侭俶峙議窃侏才兆忖。更夛匂歌方議孔嬬才囂隈効痕方才圭隈歌方屢揖。

和中箭徨嶄協吶阻匯倖淫根父箆業梁業議潤更悶Celsius。万協吶阻曾倖音揖議更夛匂?init(fromFahrenheit:)才init(fromKelvin:)?屈宀蛍艶宥狛俊鞭音揖震業燕幣議梁業峙栖幹秀仟議糞箭?
struct Celsius {
 var temperatureInCelsius: Double = 0.0
 init(fromFahrenheit fahrenheit: Double) {
 temperatureInCelsius = (fahrenheit - 32.0) / 1.8
 }
 init(fromKelvin kelvin: Double) {
 temperatureInCelsius = kelvin - 273.15
 }
}
let boilingPointOfWater = Celsius(fromFahrenheit: 212.0)
// boilingPointOfWater.temperatureInCelsius 頁 100.0
let freezingPointOfWater = Celsius(fromKelvin: 273.15)
// freezingPointOfWater.temperatureInCelsius 頁 0.0”
及匯倖更夛匂啜嗤匯倖更夛歌方?凪翌何兆忖葎fromFahrenheit?坪何兆忖葎fahrenheit?及屈倖更夛匂匆啜嗤匯倖更夛歌方?凪翌何兆忖葎fromKelvin?坪何兆忖葎kelvin。宸曾倖更夛匂脅繍率匯議歌方峙廬算撹父箆梁業峙?旺隠贋壓奉來temperatureInCelsius嶄。

坪何才翌何歌方兆

効痕方才圭隈歌方屢揖?更夛歌方匆贋壓匯倖壓更夛匂坪何聞喘議歌方兆忖才匯倖壓距喘更夛匂扮聞喘議翌何歌方兆忖。

隼遇?更夛匂旺音崧痕方才圭隈椎劔壓凄催念嗤匯倖辛掩艶議兆忖。侭參壓距喘更夛匂扮?麼勣宥狛更夛匂嶄議歌方兆才窃侏栖鳩協俶勣距喘議更夛匂。屎咀葎歌方泌緩嶷勣?泌惚低壓協吶更夛匂扮短嗤戻工歌方議翌何兆忖?Swift 氏葎耽倖更夛匂議歌方徭強伏撹匯倖効坪何兆忖屢揖議翌何兆?祥屢輝噐壓耽倖更夛歌方岻念紗阻匯倖込錬憲催。
廣吭?泌惚低音錬李葎更夛匂議蝶倖歌方戻工翌何兆忖?低辛參聞喘和皿?_栖?塋消菠毖?塚皺臣菪r坿妨恩派話翹秭亀陳h椀侘Ą?
參和箭徨嶄協吶阻匯倖潤更悶Color?万淫根阻眉倖械楚?red、green才blue。宸乂奉來辛參贋刈0.0欺1.0岻寂議峙?喘栖峺幣冲弼嶄碕、駄、清撹蛍議根楚。

Color戻工阻匯倖更夛匂?凪嶄淫根眉倖Double窃侏議更夛歌方?
struct Color {
 let red = 0.0, green = 0.0, blue = 0.0
 init(red: Double, green: Double, blue: Double) {
 self.red = red
 self.green = green
 self.blue = blue
 }
}
耽輝低幹秀匯倖仟議Color糞箭?低脅俶勣宥狛眉嶽冲弼議翌何歌方兆栖勧峙?旺距喘更夛匂。
let magenta = Color(red: 1.0, green: 0.0, blue: 1.0) 
廣吭?泌惚音宥狛翌何歌方兆忖勧峙?低頁短隈距喘宸倖更夛匂議。峪勣更夛匂協吶阻蝶倖翌何歌方兆?低祥駅倬聞喘万?策待万繍擬崑園咎危列?
let veryGreen = Color(0.0, 1.0, 0.0) // 烏園咎扮危列?俶勣翌何兆各 

辛僉奉來窃侏

泌惚低協崙議窃侏淫根匯倖貸辞貧塋俯函峙葎腎議贋刈侏奉來--音砿頁咀葎万涙隈壓兜兵晒扮験峙?珊頁咀葎万辛參壓岻朔蝶倖扮寂泣辛參験峙葎腎--低脅俶勣繍万協吶葎辛僉窃侏optional type。辛僉窃侏議奉來繍徭強兜兵晒葎腎nil?燕幣宸倖奉來頁絞吭壓兜兵晒扮譜崔葎腎議。
和中箭徨嶄協吶阻窃SurveyQuestion?万淫根匯倖辛僉忖憲堪奉來response?
class SurveyQuestion { var text: String var response: String? init(text: String) { self.text = text } func ask() { println(text) } } let cheeseQuestion = SurveyQuestion(text: "Do you like cheese?") cheeseQuestion.ask() // 補竃 "Do you like cheese?" cheeseQuestion.response = "Yes, I do like cheese. 
距臥諒籾壓諒籾戻竃岻朔?厘断嘉嬬誼欺指基。侭參厘断繍奉來指基response蕗苧葎String?窃侏?賜宀傍頁辛僉忖憲堪窃侏optional String。輝SurveyQuestion糞箭晒扮?万繍徭強験峙葎腎nil?燕苧壙扮珊音贋壓緩忖憲堪。

更夛狛殻嶄械楚奉來議俐個

峪勣壓更夛狛殻潤崩念械楚議峙嬬鳩協?低辛參壓更夛狛殻嶄議販吭扮寂泣俐個械楚奉來議峙。
廣吭?
斤蝶倖窃糞箭栖傍?万議械楚奉來峪嬬壓協吶万議窃議更夛狛殻嶄俐個?音嬬壓徨窃嶄俐個。
低辛參俐個貧中議SurveyQuestion幣箭?喘械楚奉來紋旗延楚奉來text?峺苧諒籾坪否text壓凪幹秀岻朔音氏壅瓜俐個。勝砿text奉來孖壓頁械楚?厘断挽隼辛參壓凪窃議更夛匂嶄俐個万議峙?
class SurveyQuestion {
 var text: String
 var response: String?
 init(text: String) {
 self.text = text
 }
 func ask() {
 println(text)
 }
}
let cheeseQuestion = SurveyQuestion(text: "Do you like cheese?")
cheeseQuestion.ask()
// 補竃 "Do you like cheese?"
cheeseQuestion.response = "Yes, I do like cheese.

潮範更夛匂

Swift 繍葎侭嗤奉來厮戻工潮範峙議拝徭附短嗤協吶販採更夛匂議潤更悶賜児窃?戻工匯倖潮範議更夛匂。宸倖潮範更夛匂繍酒汽議幹秀匯倖侭嗤奉來峙脅譜崔葎潮範峙議糞箭。

和中箭徨嶄幹秀阻匯倖窃ShoppingListItem?万撃廾阻杭麗賠汽嶄議蝶匯?議奉來?兆忖?name?、方楚?quantity?才杭択彜蓑 purchase state。
class ShoppingListItem {
 var name: String?
 var quantity = 1
 var purchased = false
}
var item = ShoppingListItem()
喇噐ShoppingListItem窃嶄議侭嗤奉來脅嗤潮範峙?拝万頁短嗤幻窃議児窃?万繍徭強資誼匯倖辛參葎侭嗤奉來譜崔潮範峙議潮範更夛匂?勝砿旗鷹嶄短嗤?塋塾?name奉來譜崔潮範峙?徽喇噐name頁辛僉忖憲堪窃侏?万繍潮範譜崔葎nil?。貧中箭徨嶄聞喘潮範更夛匂幹夛阻匯倖ShoppingListItem窃議糞箭?聞喘ShoppingListItem()侘塀議更夛匂囂隈??旺繍凪験峙公延楚item。

潤更悶議幟匯撹埀更夛匂

茅貧中戻欺議潮範更夛匂?泌惚潤更悶斤侭嗤贋刈侏奉來戻工阻潮範峙拝徭附短嗤戻工協崙議更夛匂?万断嬬徭強資誼匯倖幟匯撹埀更夛匂。

幟匯撹埀更夛匂頁喘栖兜兵晒潤更悶仟糞箭戦撹埀奉來議酔楯圭隈。厘断壓距喘幟匯撹埀更夛匂扮?宥狛嚥撹埀奉來兆屢揖議歌方兆序佩勧峙栖頼撹斤撹埀奉來議兜兵験峙。

和中箭徨嶄協吶阻匯倖潤更悶Size?万淫根曾倖奉來width才height。Swift 辛參功象宸曾倖奉來議兜兵験峙0.0徭強容擬竃万断議窃侏Double。

喇噐宸曾倖贋刈侏奉來脅嗤潮範峙?潤更悶Size徭強資誼阻匯倖幟匯撹埀更夛匂 init(width:height:)。 低辛參喘万栖葎Size幹秀仟議糞箭?
struct Size {
 var width = 0.0, height = 0.0
}
let twoByTwo = Size(width: 2.0, height: 2.0) 

峙窃侏議更夛匂旗尖

更夛匂辛參宥狛距喘凪万更夛匂栖頼撹糞箭議何蛍更夛狛殻。宸匯狛殻各葎更夛匂旗尖?万嬬受富謹倖更夛匂寂議旗鷹嶷鹸。

更夛匂旗尖議糞孖号夸才侘塀壓峙窃侏才窃窃侏嶄嗤侭音揖。峙窃侏?潤更悶才旦訟窃侏?音屶隔写覚?侭參更夛匂旗尖議狛殻屢斤酒汽?咀葎万断峪嬬旗尖販暦公云附戻工議凪万更夛匂。窃夸音揖?万辛參写覚徭凪万窃?萩歌深写覚??宸吭龍彭窃嗤夭販隠屬凪侭嗤写覚議贋刈侏奉來壓更夛扮匆嬬屎鳩議兜兵晒。宸乂夭販繍壓朔偬嫗准窃議写覚才更夛狛殻嶄初府。

斤噐峙窃侏?低辛參聞喘self.init壓徭協吶議更夛匂嶄哈喘凪万議奉噐屢揖峙窃侏議更夛匂。旺拝低峪嬬壓更夛匂坪何距喘self.init。

廣吭?泌惚低葎蝶倖峙窃侏協吶阻匯倖協崙議更夛匂?低繍涙隈恵諒欺潮範更夛匂?泌惚頁潤更悶?夸涙隈恵諒幟匯斤嵆更夛匂?。宸倖尫崙辛參契峭低壓葎峙窃侏協吶阻匯倖厚鹸墫議?頼撹阻嶷勣彈姥更夛匂岻朔?艶繁珊頁危列議聞喘阻椎倖徭強伏撹議更夛匂。
廣吭?邪泌低?宥狛潮範更夛匂、幟匯斤嵆更夛匂參式低徭失協崙議更夛匂葎峙窃侏幹秀糞箭?厘断秀咏低繍徭失協崙議更夛匂亟欺制婢?extension?嶄?遇音頁効峙窃侏協吶詞壓匯軟。?臥心厚謹坪否?萩臥心制婢嫗准。
和中箭徨繍協吶匯倖潤更悶Rect?喘栖婢孖叱採裳侘。宸倖箭徨俶勣曾倖絹廁議潤更悶Size才Point?万断光徭葎凪侭嗤議奉來戻工阻兜兵峙0.0。
struct Size {
 var width = 0.0, height = 0.0
}
struct Point {
 var x = 0.0, y = 0.0
} 
低辛參宥狛參和眉嶽圭塀葎Rect幹秀糞箭--聞喘潮範議0峙栖兜兵晒origin才size奉來?聞喘蒙協議origin才size糞箭栖兜兵晒?聞喘蒙協議center才size栖兜兵晒。壓和中Rect潤更悶協吶嶄?厘断葎彭眉嶽圭塀戻工阻眉倖徭協吶議更夛匂?
struct Rect {
 var origin = Point()
 var size = Size()
 init() {}
 init(origin: Point, size: Size) {
 self.origin = origin
 self.size = size
 }
 init(center: Point, size: Size) {
 let originX = center.x - (size.width / 2)
 let originY = center.y - (size.height / 2)
 self.init(origin: Point(x: originX, y: originY), size: size)
 }
}
及匯倖Rect更夛匂init()?壓孔嬬貧効短嗤徭協吶更夛匂扮徭強資誼議潮範更夛匂頁匯劔議。宸倖更夛匂頁匯倖腎痕方?聞喘匯斤寄凄催{}栖宙峰?万短嗤峇佩販採協崙議更夛狛殻。距喘宸倖更夛匂繍卦指匯倖Rect糞箭?万議origin才size奉來脅聞喘協吶扮議潮範峙Point(x: 0.0, y: 0.0)才Size(width: 0.0, height: 0.0)?
let basicRect = Rect()
// basicRect 議圻泣頁 (0.0, 0.0)?樫雁頁 (0.0, 0.0) 
及屈倖Rect更夛匂init(origin:size:)?壓孔嬬貧効潤更悶壓短嗤徭協吶更夛匂扮資誼議幟匯撹埀更夛匂頁匯劔議。宸倖更夛匂峪頁酒汽議繍origin才size議歌方峙験公斤哘議贋刈侏奉來?
let originRect = Rect(origin: Point(x: 2.0, y: 2.0),
 size: Size(width: 5.0, height: 5.0))
// originRect 議圻泣頁 (2.0, 2.0)?樫雁頁 (5.0, 5.0) 
及眉倖Rect更夛匂init(center:size:)不裏鹸墫匯泣。万枠宥狛center才size議峙柴麻竃origin議恫炎。隼朔壅距喘?賜旗尖公?init(origin:size:)更夛匂栖繍仟議origin才size峙験峙欺斤哘議奉來嶄?
let centerRect = Rect(center: Point(x: 4.0, y: 4.0),
 size: Size(width: 3.0, height: 3.0))
// centerRect 議圻泣頁 (2.5, 2.5)?樫雁頁 (3.0, 3.0)
更夛匂init(center:size:)辛參徭失繍origin才size議仟峙験峙欺斤哘議奉來嶄。隼遇勝楚旋喘孖嗤議更夛匂才万侭戻工議孔嬬栖糞孖init(center:size:)議孔嬬?頁厚圭宴、厚賠漣才厚岷鉱議圭隈。
廣吭?泌惚低?喘総翌匯嶽音俶勣徭失協吶init()才init(origin:size:)議圭塀栖糞孖宸倖箭徨?萩歌深制婢

窃議写覚才更夛狛殻

窃戦中議侭嗤贋刈侏奉來--淫凄侭嗤写覚徭幻窃議奉來--脅駅倬壓更夛狛殻嶄譜崔兜兵峙。

Swift 戻工阻曾嶽窃侏議窃更夛匂栖鳩隠侭嗤窃糞箭嶄贋刈侏奉來脅嬬資誼兜兵峙?万断蛍艶頁峺協更夛匂才宴旋更夛匂。

峺協更夛匂才宴旋更夛匂

峺協更夛匂頁窃嶄恷麼勣議更夛匂。匯倖峺協更夛匂繍兜兵晒窃嶄戻工議侭嗤奉來?旺功象幻窃全吏貧距喘幻窃議更夛匂栖糞孖幻窃議兜兵晒。

耽匯倖窃脅駅倬啜嗤崛富匯倖峺協更夛匂。壓蝶乂秤趨和?俯謹窃宥狛写覚阻幻窃嶄議峺協更夛匂遇諾怎阻宸倖訳周。醤悶坪否萩歌深朔偬嫗准徭強更夛匂議写覚

宴旋更夛匂頁窃嶄曳熟肝勣議、絹廁侏議更夛匂。低辛參協吶宴旋更夛匂栖距喘揖匯倖窃嶄議峺協更夛匂?旺葎凪歌方戻工潮範峙。低匆辛參協吶宴旋更夛匂栖幹秀匯倖蒙歩喘余賜蒙協補秘議糞箭。

低哘輝峪壓駅勣議扮昨葎窃戻工宴旋更夛匂?曳圭傍蝶嶽秤趨和宥狛聞喘宴旋更夛匂栖酔楯距喘蝶倖峺協更夛匂?嬬校准福厚謹蝕窟扮寂旺斑窃議更夛狛殻厚賠、漣苧。

更夛匂全

葎阻酒晒峺協更夛匂才宴旋更夛匂岻寂議距喘購狼?Swift 寡喘參和眉訳号夸栖尫崙更夛匂岻寂議旗尖距喘?
  • 峺協更夛匂駅倬距喘凪岷俊幻窃議議峺協更夛匂。
  • 宴旋更夛匂駅倬距喘揖匯窃嶄協吶議凪万更夛匂。
  • 宴旋更夛匂駅倬恷嶮參距喘匯倖峺協更夛匂潤崩。

匯倖厚圭宴芝吮議圭隈頁?
  • 峺協更夛匂駅倬悳頁?貧旗尖
  • 宴旋更夛匂駅倬悳頁罪?旗尖
宸乂号夸辛參宥狛和中夕箭栖傍苧?
更夛匂旗尖夕

泌夕侭幣?幻窃嶄淫根匯倖峺協更夛匂才曾倖宴旋更夛匂。凪嶄匯倖宴旋更夛匂距喘阻総翌匯倖宴旋更夛匂?遇朔宀嗽距喘阻率匯議峺協更夛匂。宸諾怎阻貧中戻欺議号夸2才3。宸倖幻窃短嗤徭失議幻窃?侭參号夸1短嗤喘欺。

徨窃嶄淫根曾倖峺協更夛匂才匯倖宴旋更夛匂。宴旋更夛匂駅倬距喘曾倖峺協更夛匂嶄議販吭匯倖?咀葎万峪嬬距喘揖匯倖窃戦議凪麿更夛匂。宸諾怎阻貧中戻欺議号夸2才3。遇曾倖峺協更夛匂駅倬距喘幻窃嶄率匯議峺協更夛匂?宸諾怎阻号夸1。
廣吭?宸乂号夸音氏唹峒聞喘扮?泌採喘窃肇幹秀糞箭。販採貧夕嶄婢幣議更夛匂脅辛參喘栖頼屁幹秀斤哘窃議糞箭。宸乂号夸峪壓糞孖窃議協吶扮嗤唹峒。
和中夕箭嶄婢幣阻匯嶽厚鹸墫議窃蚊雫潤更。万處幣阻峺協更夛匂頁泌惚壓窃蚊雫嶄割輝“砿祇”議恬喘?壓窃議更夛匂全貧酒晒阻窃岻寂議坪何購狼。
鹸墫更夛匂旗尖夕

曾粁塀更夛狛殻

Swift 嶄窃議更夛狛殻淫根曾倖竣粁。及匯倖竣粁?耽倖贋刈侏奉來宥狛哈秘万断議窃議更夛匂栖譜崔兜兵峙。輝耽匯倖贋刈侏奉來峙瓜鳩協朔?及屈竣粁蝕兵?万公耽倖窃匯肝字氏壓仟糞箭彈姥聞喘岻念序匯化協崙万断議贋刈侏奉來。
曾粁塀更夛狛殻議聞喘斑更夛狛殻厚芦畠?揖扮壓屁倖窃蚊雫潤更嶄公嚠阻耽倖窃頼畠議痩試來。曾粁塀更夛狛殻辛參契峭奉來峙壓兜兵晒岻念瓜恵諒?匆辛參契峭奉來瓜総翌匯倖更夛匂吭翌仇験嚠音揖議峙。
廣吭?Swift議曾粁塀更夛狛殻効 Objective-C 嶄議更夛狛殻窃貌。恷麼勣議曝艶壓噐竣粁 1?Objective-C 公耽匯倖奉來験峙0賜腎峙?曳泌傍0賜nil?。Swift 議更夛送殻夸厚紗痩試?万塋俯低譜崔協崙議兜兵峙?旺徭泌哘斤蝶乂奉來音嬬參0賜nil恬葎栽隈潮範峙議秤趨。
Swift 園咎匂繍峇佩 4 嶽嗤丼議芦畠殊臥?參鳩隠曾粁塀更夛狛殻嬬乏旋頼撹?
  • 峺協更夛匂駅倬隠屬万侭壓窃哈秘議侭嗤奉來脅駅倬枠兜兵晒頼撹?岻朔嘉嬬繍凪万更夛販暦?貧旗尖公幻窃嶄議更夛匂。泌貧侭峰?匯倖斤嵆議坪贋峪嗤壓凪侭嗤贋刈侏奉來鳩協岻朔嘉嬬頼畠兜兵晒。葎阻諾怎宸匯号夸?峺協更夛匂駅倬隠屬万侭壓窃哈秘議奉來壓万吏貧旗尖岻念枠頼撹兜兵晒。
  • 峺協更夛匂駅倬枠?貧旗尖距喘幻窃更夛匂?隼朔壅葎写覚議奉來譜崔仟峙。泌惚短宸担恂?峺協更夛匂験嚠議仟峙繍瓜幻窃嶄議更夛匂侭顕固。
  • 宴旋更夛匂駅倬枠旗尖距喘揖匯窃嶄議凪万更夛匂?隼朔壅葎販吭奉來験仟峙。泌惚短宸担恂?宴旋更夛匂験嚠議仟峙繍瓜揖匯窃嶄凪万峺協更夛匂侭顕固。
  • 更夛匂壓及匯竣粁更夛頼撹岻念?音嬬距喘販採糞箭圭隈、音嬬響函販採糞箭奉來議峙?匆音嬬哈喘self議峙。

參和頁曾粁塀更夛狛殻嶄児噐貧峰芦畠殊臥議更夛送殻婢幣?

竣粁1?
  • 蝶倖峺協更夛匂賜宴旋更夛匂瓜距喘?
  • 頼撹仟糞箭坪贋議蛍塘?徽緩扮坪贋珊短嗤瓜兜兵晒?
  • 峺協更夛匂鳩隠凪侭壓窃哈秘議侭嗤贋刈侏奉來脅厮験兜峙。贋刈侏奉來侭奉議坪贋頼撹兜兵晒?
  • 峺協更夛匂繍距喘幻窃議更夛匂?頼撹幻窃奉來議兜兵晒?
  • 宸倖距喘幻窃更夛匂議狛殻冽彭更夛匂全匯岷吏貧峇佩?岷欺欺器更夛匂全議恷競何?
  • 輝欺器阻更夛匂全恷競何?拝厮鳩隠侭嗤糞箭淫根議贋刈侏奉來脅厮将験峙?宸倖糞箭議坪贋瓜範葎厮将頼畠兜兵晒。緩扮竣粁1頼撹。

竣粁2?
  • 貫競何更夛匂全匯岷吏和?耽倖更夛匂全嶄窃議峺協更夛匂脅嗤字氏序匯化協崙糞箭。更夛匂緩扮辛參恵諒self、俐個万議奉來旺距喘糞箭圭隈吉吉。
  • 恷嶮?販吭更夛匂全嶄議宴旋更夛匂辛參嗤字氏協崙糞箭才聞喘self。

和夕婢幣阻壓邪協議徨窃才幻窃岻寂更夛議竣粁1? ·
更夛狛殻竣粁1

壓宸倖箭徨嶄?更夛狛殻貫斤徨窃嶄匯倖宴旋更夛匂議距喘蝕兵。宸倖宴旋更夛匂緩扮短隈俐個販採奉來?万委更夛販暦旗尖公揖匯窃嶄議峺協更夛匂。

泌芦畠殊臥1侭幣?峺協更夛匂繍鳩隠侭嗤徨窃議奉來脅嗤峙。隼朔万繍距喘幻窃議峺協更夛匂?旺冽彭夛匂全匯岷吏貧頼撹幻窃議更秀狛殻。

幻窃嶄議峺協更夛匂鳩隠侭嗤幻窃議奉來脅嗤峙。喇噐短嗤厚謹議幻窃俶勣更秀?匆祥涙俶写偬?貧恂更秀旗尖。

匯稀幻窃嶄侭嗤奉來脅嗤阻兜兵峙?糞箭議坪贋瓜範葎頁頼畠兜兵晒?遇竣粁1匆厮頼撹。

參和婢幣阻屢揖更夛狛殻議竣粁2?
更秀狛殻竣粁2

幻窃嶄議峺協更夛匂孖壓嗤字氏序匯化栖協崙糞箭?勝砿万短嗤宸嶽駅勣?。

匯稀幻窃嶄議峺協更夛匂頼撹距喘?徨窃議更峺協更夛匂辛參峇佩厚謹議協崙荷恬?揖劔?万匆短嗤宸嶽駅勣?。

恷嶮?匯稀徨窃議峺協更夛匂頼撹距喘?恷蝕兵瓜距喘議宴旋更夛匂辛參峇佩厚謹議協崙荷恬。

更夛匂議写覚才嶷墮

効 Objective-C 嶄議徨窃音揖?Swift 嶄議徨窃音氏潮範写覚幻窃議更夛匂。Swift 議宸嶽字崙辛參契峭匯倖幻窃議酒汽更夛匂瓜匯倖厚廨匍議徨窃写覚?旺瓜危列議喘栖幹秀徨窃議糞箭。

邪泌低錬李徭協吶議徨窃嶄嬬糞孖匯倖賜謹倖効幻窃屢揖議更夛匂--匆俯頁葎阻頼撹匯乂協崙議更夛狛殻--低辛參壓低協崙議徨窃嶄戻工才嶷墮嚥幻窃屢揖議更夛匂。

泌惚低嶷墮議更夛匂頁匯倖峺協更夛匂?低辛參壓徨窃戦嶷墮万議糞孖?旺壓徭協吶井云議更夛匂嶄距喘幻窃井云議更夛匂。

泌惚低嶷墮議更夛匂頁匯倖宴旋更夛匂?低議嶷墮狛殻駅倬宥狛距喘揖匯窃嶄戻工議凪万峺協更夛匂栖糞孖。宸匯号夸議峋聾坪否萩歌深更夛匂全
廣吭?嚥圭隈、奉來才和炎音揖?壓嶷墮更夛匂扮低短嗤駅勣聞喘購囚忖override。

徭強更夛匂議写覚

泌貧侭峰?徨窃音氏潮範写覚幻窃議更夛匂。徽頁泌惚蒙協訳周辛參諾怎?幻窃更夛匂頁辛參瓜徭強写覚議。壓糞樹嶄?宸吭龍彭斤噐俯謹械需魁尚低音駅嶷墮幻窃議更夛匂?旺拝壓勝辛嬬芦畠議秤趨和參恷弌議旗勺栖写覚幻窃議更夛匂。
邪譜勣葎徨窃嶄哈秘議販吭仟奉來戻工潮範峙?萩恆便參和2倖号夸?
  • 泌惚徨窃短嗤協吶販採峺協更夛匂?万繍徭強写覚侭嗤幻窃議峺協更夛匂。
  • 泌惚徨窃戻工阻侭嗤幻窃峺協更夛匂議糞孖--音砿頁宥狛号夸1写覚狛栖議?珊頁宥狛徭協吶糞孖議--万繍徭強写覚侭嗤幻窃議宴旋更夛匂。

軸聞低壓徨窃嶄耶紗阻厚謹議宴旋更夛匂?宸曾訳号夸挽隼癖喘。
廣吭?徨窃辛參宥狛何蛍諾怎号夸2議圭塀?聞喘徨窃宴旋更夛匂栖糞孖幻窃議峺協更夛匂。

峺協更夛匂才宴旋更夛匂議囂隈

窃議峺協更夛匂議亟隈効峙窃侏酒汽更夛匂匯劔?
init(parameters) { statements } 
宴旋更夛匂匆寡喘屢揖劔塀議亟隈?徽俶勣壓init購囚忖岻念慧崔convenience購囚忖?旺聞喘腎鯉繍万断践蛍蝕?
convenience init(parameters) { statements } 

峺協更夛匂才宴旋更夛匂糞媾

俊和栖議箭徨繍壓糞媾嶄婢幣峺協更夛匂、宴旋更夛匂才徭強更夛匂議写覚。万協吶阻淫根眉倖窃Food、RecipeIngredient參式ShoppingListItem議窃蚊肝潤更?旺繍處幣万断議更夛匂頁泌採屢札恬喘議。

窃蚊肝嶄議児窃頁Food?万頁匯倖酒汽議喘栖撃廾奮麗兆忖議窃。Food窃哈秘阻匯倖出恂name議String窃侏奉來?旺拝戻工阻曾倖更夛匂栖幹秀Food糞箭?
class Food {
 var name: String
 init(name: String) {
 self.name = name
 }
 convenience init() {
 self.init(name: "[Unnamed]")
 }
}
和夕嶄婢幣阻Food議更夛匂全?
Food更夛匂全

窃短嗤戻工匯倖潮範議幟匯撹埀更夛匂?侭參Food窃戻工阻匯倖俊鞭汽匯歌方name議峺協更夛匂。宸倖更夛匂辛參聞喘匯倖蒙協議兆忖栖幹秀仟議Food糞箭?
let namedMeat = Food(name: "Bacon")
// namedMeat 議兆忖頁 "Bacon” 
Food窃嶄議更夛匂init(name: String)瓜協吶葎匯倖峺協更夛匂?咀葎万嬬鳩隠侭嗤仟Food糞箭議嶄贋刈侏奉來脅瓜兜兵晒。Food窃短嗤幻窃?侭參init(name: String)更夛匂音俶勣距喘super.init()栖頼撹更夛。

Food窃揖劔戻工阻匯倖短嗤歌方議宴旋更夛匂 init()。宸倖init()更夛匂葎仟奮麗戻工阻匯倖潮範議媼了兆忖?宥狛旗尖距喘揖匯窃嶄協吶議峺協更夛匂init(name: String)旺公歌方name勧峙[Unnamed]栖糞孖?
let mysteryMeat = Food()
// mysteryMeat 議兆忖頁 [Unnamed] 
窃蚊雫嶄議及屈倖窃頁Food議徨窃RecipeIngredient。RecipeIngredient窃更秀阻奮惇嶄議匯龍距龍質。万哈秘阻Int窃侏議方楚奉來quantity?參式貫Food写覚狛栖議name奉來??旺拝協吶阻曾倖更夛匂栖幹秀RecipeIngredient糞箭?
class RecipeIngredient: Food {
 var quantity: Int
 init(name: String, quantity: Int) {
 self.quantity = quantity
 super.init(name: name)
 }
 convenience init(name: String) {
 self.init(name: name, quantity: 1)
 }
}
和夕嶄婢幣阻RecipeIngredient窃議更夛匂全?
RecipeIngredient更夛匂

RecipeIngredient窃啜嗤匯倖峺協更夛匂init(name: String, quantity: Int)?万辛參喘栖恢伏仟RecipeIngredient糞箭議侭嗤奉來峙。宸倖更夛匂匯蝕兵枠繍勧秘議quantity歌方験峙公quantity奉來?宸倖奉來匆頁率匯壓RecipeIngredient嶄仟哈秘議奉來。昧朔?更夛匂繍販暦?貧旗尖公幻窃Food議init(name: String)。宸倖狛殻諾怎曾粁塀更夛狛殻嶄議芦畠殊臥1。

RecipeIngredient匆協吶阻匯倖宴旋更夛匂init(name: String)?万峪宥狛name栖幹秀RecipeIngredient議糞箭。宸倖宴旋更夛匂邪譜販吭RecipeIngredient糞箭議quantity葎1?侭參音俶勣?塋蕉乎烘鎣深歓百棺┳?祇釥U盡橳秬蕤行貽澶超38綽敏堡担棺30祇錥賾啖襲禳与貊檻??勹榁眩吠荒置惴患調翮訐幹棺╋犖?quantity葎 1 議RecipeIngredient糞箭。宸倖宴旋更夛匂峪頁酒汽議繍販暦旗尖公阻揖匯窃戦戻工議峺協更夛匂。

廣吭?RecipeIngredient議宴旋更夛匂init(name: String)聞喘阻効Food嶄峺協更夛匂init(name: String)屢揖議歌方。勝砿RecipeIngredient宸倖更夛匂頁宴旋更夛匂?RecipeIngredient卆隼戻工阻斤侭嗤幻窃峺協更夛匂議糞孖。咀緩?RecipeIngredient匆嬬徭強写覚阻侭嗤幻窃議宴旋更夛匂。

壓宸倖箭徨嶄?RecipeIngredient議幻窃頁Food?万嗤匯倖宴旋更夛匂init()。宸倖更夛匂咀緩匆瓜RecipeIngredient写覚。宸倖写覚議init()痕方井云効Food戻工議井云頁匯劔議?茅阻万頁繍販暦旗尖公RecipeIngredient井云議init(name: String)遇音頁Food戻工議井云。

侭嗤議宸眉嶽更夛匂脅辛參喘栖幹秀仟議RecipeIngredient糞箭?
let oneMysteryItem = RecipeIngredient()
let oneBacon = RecipeIngredient(name: "Bacon")
let sixEggs = RecipeIngredient(name: "Eggs", quantity: 6) 
窃蚊雫嶄及眉倖匆頁恷朔匯倖窃頁RecipeIngredient議徨窃?出恂ShoppingListItem。宸倖窃更秀阻杭麗汽嶄竃孖議蝶匯嶽距龍創。

杭麗汽嶄議耽匯?悳頁貫unpurchased隆杭択彜蓑蝕兵議。葎阻婢孖宸匯並糞?ShoppingListItem哈秘阻匯倖下櫛窃侏議奉來purchased?万議潮範峙頁false。ShoppingListItem珊耶紗阻匯倖柴麻侏奉來description?万戻工阻購噐ShoppingListItem糞箭議匯乂猟忖宙峰?
class ShoppingListItem: RecipeIngredient {
 var purchased = false
 var description: String {
 var output = "\(quantity) x \(name.lowercaseString)"
 output += purchased ? " ✔" : " ✘"
 return output
 }
}
廣吭?ShoppingListItem短嗤協吶更夛匂栖葎purchased戻工兜兵晒峙?宸頁咀葎販採耶紗欺杭麗汽議?議兜兵彜蓑悳頁隆杭択。
喇噐万葎徭失哈秘議侭嗤奉來脅戻工阻潮範峙?旺拝徭失短嗤協吶販採更夛匂?ShoppingListItem繍徭強写覚侭嗤幻窃嶄議峺協更夛匂才宴旋更夛匂。

和夕嶽婢幣阻侭嗤眉倖窃議更夛匂全?
眉窃更夛匂夕

低辛參聞喘畠何眉倖写覚栖議更夛匂栖幹秀ShoppingListItem議仟糞箭?
var breakfastList = [
 ShoppingListItem(),
 ShoppingListItem(name: "Bacon"),
 ShoppingListItem(name: "Eggs", quantity: 6),
]
breakfastList[0].name = "Orange juice"
breakfastList[0].purchased = true
for item in breakfastList {
 println(item.description)
}
// 1 x orange juice ✔
// 1 x bacon ✘
// 6 x eggs ✘
泌貧侭峰?箭徨嶄宥狛忖中楚圭塀幹秀阻匯倖仟方怏breakfastList?万淫根阻眉倖仟議ShoppingListItem糞箭?咀緩方怏議窃侏匆嬬徭強容擬葎ShoppingListItem[]。壓方怏幹秀頼岻朔?方怏嶄及匯倖ShoppingListItem糞箭議兆忖貫[Unnamed]俐個葎Orange juice?旺炎芝葎厮杭択。俊和栖宥狛演煽方怏耽倖圷殆旺嬉咫万断議宙峰峙?婢幣阻侭嗤?輝念議潮範彜蓑脅厮梓孚圓豚頼撹阻験峙。

宥狛液淫才痕方栖譜崔奉來議潮範峙

泌惚蝶倖贋刈侏奉來議潮範峙俶勣蒙艶議協崙賜彈姥?低祥辛參聞喘液淫賜畠蕉痕方栖葎凪奉來戻工協崙議潮範峙。耽輝蝶倖奉來侭奉議仟窃侏糞箭幹秀扮?斤哘議液淫賜痕方氏瓜距喘?遇万断議卦指峙氏輝恂潮範峙験峙公宸倖奉來。

宸嶽窃侏議液淫賜痕方匯違氏幹秀匯倖効奉來窃侏屢揖議匝扮延楚?隼朔俐個万議峙參諾怎圓豚議兜兵彜蓑?恷朔繍宸倖匝扮延楚議峙恬葎奉來議潮範峙序佩卦指。

和中双訟阻液淫泌採戻工潮範峙議旗鷹古勣?
class SomeClass {
 let someProperty: SomeType = {
 // 壓宸倖液淫嶄公 someProperty 幹秀匯倖潮範峙
 // someValue 駅倬才 SomeType 窃侏屢揖
 return someValue
 }()
}
廣吭液淫潤硫議寄凄催朔中俊阻匯斤腎議弌凄催。宸頁喘栖御盆 Swift 俶勣羨震峇佩緩液淫。泌惚低策待阻宸斤凄催?屢輝噐頁繍液淫云附恬葎峙験峙公阻奉來?遇音頁繍液淫議卦指峙験峙公奉來。
廣吭?泌惚低聞喘液淫栖兜兵晒奉來議峙?萩芝廖壓液淫峇佩扮?糞箭議凪万何蛍脅珊短嗤兜兵晒。宸吭龍彭低音嬬校壓液淫戦恵諒凪万議奉來?祥麻宸倖奉來嗤潮範峙匆音塋俯。揖劔?低匆音嬬聞喘咨塀議self奉來?賜宀距喘凪万議糞箭圭隈。
和中箭徨嶄協吶阻匯倖潤更悶Checkerboard?万更秀阻廉剴柳薙嗄老議薙徒?
廉剴柳薙薙徒

廉剴柳薙嗄老壓匯険菜易鯉住紋議 10x10 議薙徒嶄序佩。葎阻格孖宸険嗄老薙徒?Checkerboard潤更悶協吶阻匯倖奉來boardColors?万頁匯倖淫根 100 倖下櫛峙議方怏。方怏嶄議蝶圷殆下櫛峙葎true燕幣斤哘議頁匯倖菜鯉?下櫛峙葎false燕幣斤哘議頁匯倖易鯉。方怏嶄及匯倖圷殆旗燕薙徒貧恣貧叔議鯉徨?恷朔匯倖圷殆旗燕薙徒貧嘔和叔議鯉徨。

boardColor方怏頁宥狛匯倖液淫栖兜兵晒才怏廾冲弼峙議?
struct Checkerboard {
 let boardColors: Bool[] = {
 var temporaryBoard = Bool[]()
 var isBlack = false
 for i in 1...10 {
 for j in 1...10 {
 temporaryBoard.append(isBlack)
 isBlack = !isBlack
 }
 isBlack = !isBlack
 }
 return temporaryBoard
 }()
 func squareIsBlackAtRow(row: Int, column: Int) -> Bool {
 return boardColors[(row * 10) + column]
 }
}
耽輝匯倖仟議Checkerboard糞箭幹秀扮?斤哘議験峙液淫氏峇佩?匯狼双冲弼峙氏瓜柴麻竃栖恬葎潮範峙験峙公boardColors。貧中箭徨嶄宙峰議液淫繍柴麻竃薙徒嶄耽倖鯉徨栽癖議冲弼?繍宸乂冲弼峙隠贋欺匯倖匝扮方怏temporaryBoard嶄?旺壓更秀頼撹扮繍緩方怏恬葎液淫卦指峙卦指。宸倖卦指議峙繍隠贋欺boardColors嶄?旺辛參宥squareIsBlackAtRow宸倖垢醤痕方栖臥儂。
let board = Checkerboard()
println(board.squareIsBlackAtRow(0, column: 1))
// 補竃 "true"
println(board.squareIsBlackAtRow(9, column: 9))
// 補竃 "false"
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /