Swift現奉重云
<貧匯准
和匯准>
現奉重云 辛參協吶壓窃?Class?、潤更悶?structure?才旦訟?enumeration?宸乂朕炎嶄?辛參範葎頁恵諒斤嵆、鹿栽賜會双議酔楯圭塀?音俶勣壅距喘糞箭議蒙協議験峙才恵諒圭隈。訟箭栖傍?喘現奉重云恵諒匯倖方怏(Array)糞箭嶄議圷殆辛參宸劔亟someArray[index] ?恵諒忖灸(Dictionary)糞箭嶄議圷殆辛參宸劔亟 someDictionary[key]。
斤噐揖匯倖朕炎辛參協吶謹倖現奉重云?宥狛沫哈峙窃侏議音揖栖序佩嶷墮?遇拝沫哈峙議倖方辛參頁謹倖。
嚥峪響柴麻侏奉來匯劔?辛參岷俊繍圻云哘乎亟壓get旗鷹翠嶄議旗鷹亟壓subscript嶄?
低辛參宥狛現奉重云栖栖誼欺潤惚?曳泌threeTimesTable[6]。宸鞘三恵諒阻threeTimesTable議及鎗倖圷殆?卦指18賜宀6議3蔚。
箭泌?Swift 議忖灸?Dictionary?糞孖阻宥狛現奉重云栖斤凪糞箭嶄贋慧議峙序佩贋函荷恬。壓現奉重云嶄聞喘才忖灸沫哈屢揖窃侏議峙?旺拝委匯倖忖灸峙窃侏議峙験峙公宸倖現奉重云栖葎忖灸譜峙?
厚謹購噐忖灸?Dictionary?現奉重云議佚連萩歌深響函才俐個忖灸
匯倖窃賜潤更悶辛參功象徭附俶勣戻工謹倖現奉重云糞孖?壓協吶現奉重云扮宥狛秘歌倖窃侏序佩曝蛍?聞喘現奉重云扮氏徭強謄塘栽癖議現奉重云糞孖塰佩?宸祥頁現奉重云議嶷墮。
匯倖現奉重云秘歌頁恷械需議秤趨?徽峪勣嗤栽癖議魁尚匆辛參協吶謹倖現奉重云秘歌。泌和箭協吶阻匯倖Matrix潤更悶?繍格孖匯倖Double窃侏議屈略裳專。Matrix潤更悶議現奉重云俶勣曾倖屁侏歌方?
低辛參宥狛勧秘栽癖議row才column議方楚栖更夛匯倖仟議Matrix糞箭?
繍峙験公揮嗤row才column現奉重云議matrix糞箭燕器塀辛參頼撹験峙荷恬?現奉重云秘歌聞喘矯催蛍護
Matrix現奉重云議getter才setter嶄揖扮距喘阻現奉重云秘歌議row才column頁倦嗤丼議登僅。葎阻圭宴序佩僅冱?Matrix淫根阻匯倖兆葎indexIsValid議撹埀圭隈?喘栖鳩範秘歌議row賜column峙頁倦氏夛撹方怏埆順?
斤噐揖匯倖朕炎辛參協吶謹倖現奉重云?宥狛沫哈峙窃侏議音揖栖序佩嶷墮?遇拝沫哈峙議倖方辛參頁謹倖。
咎宀?宸戦現奉重云嶷墮壓云弌准嶄圻猟旺短嗤販採處幣。
現奉重云囂隈
現奉重云塋俯低宥狛壓糞箭朔中議圭凄催嶄勧秘匯倖賜宀謹倖議沫哈峙栖斤糞箭序佩恵諒才験峙。囂隈窃貌噐糞箭圭隈才柴麻侏奉來議詞栽。嚥協吶糞箭圭隈窃貌?協吶現奉重云聞喘subscript購囚忖??塋宿禱炷覯裡38燦欄魘犖?Ã遊技慇猥諭S詈祇錡酬┣四i鎚埜淑彤撤梢敏塢莇34 ?双柑鰆散繊U瞞峽淑俊嶝亠穗饉橡穉擁悔垉?getter才setter?
subscript(index: Int) -> Int {
get {
// 卦指嚥秘歌謄塘議Int窃侏議峙
}
set(newValue) {
// 峇佩験峙荷恬
}
}
newValue議窃侏駅倬才現奉重云協吶議卦指窃侏屢揖。嚥柴麻侏奉來屢揖議頁set議秘歌蕗苧newValue祥麻音亟?壓set旗鷹翠嶄卆隼辛參聞喘潮範議newValue宸倖延楚栖恵諒仟験議峙。嚥峪響柴麻侏奉來匯劔?辛參岷俊繍圻云哘乎亟壓get旗鷹翠嶄議旗鷹亟壓subscript嶄?
subscript(index: Int) -> Int {
// 卦指嚥秘歌謄塘議Int窃侏議峙
}
和中旗鷹處幣阻匯倖壓TimesTable潤更悶嶄聞喘峪響現奉重云議喘隈?乎潤更悶喘栖婢幣勧秘屁方議n蔚。
struct TimesTable {
let multiplier: Int
subscript(index: Int) -> Int {
return multiplier * index
}
}
let threeTimesTable = TimesTable(multiplier: 3)
println("3議6蔚頁\(threeTimesTable[6])")
// 補竃 "3議6蔚頁18"
壓貧箭嶄?宥狛TimesTable潤更悶幹秀阻匯倖喘栖燕幣沫哈峙眉蔚議糞箭。方峙3恬葎潤更悶更夛痕方秘歌兜兵晒糞箭撹埀multiplier。低辛參宥狛現奉重云栖栖誼欺潤惚?曳泌threeTimesTable[6]。宸鞘三恵諒阻threeTimesTable議及鎗倖圷殆?卦指18賜宀6議3蔚。
廣吭?TimesTable箭徨頁児噐匯倖耕協議方僥巷塀。万旺音癖栽蝕慧亟幡尫栖斤threeTimesTable[someIndex]序佩験峙荷恬?宸匆頁葎焚担現奉重云峪協吶葎峪響議圻咀。
現奉重云喘隈
功象聞喘魁尚音揖現奉重云匆醤嗤音揖議根吶。宥械現奉重云頁喘栖恵諒鹿栽?collection??双燕?list?賜會双?sequence?嶄圷殆議酔楯圭塀。低辛參壓低徭失蒙協議窃賜潤更悶嶄徭喇議糞孖現奉重云栖戻工栽癖議孔嬬。箭泌?Swift 議忖灸?Dictionary?糞孖阻宥狛現奉重云栖斤凪糞箭嶄贋慧議峙序佩贋函荷恬。壓現奉重云嶄聞喘才忖灸沫哈屢揖窃侏議峙?旺拝委匯倖忖灸峙窃侏議峙験峙公宸倖現奉重云栖葎忖灸譜峙?
var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4] numberOfLegs["bird"] = 2貧箭協吶匯倖兆葎numberOfLegs議延楚旺喘匯倖忖灸忖中楚兜兵晒竃阻淫根眉斤囚峙議忖灸糞箭。numberOfLegs議忖灸贋慧峙窃侏容僅葎Dictionary<String, Int>。忖灸糞箭幹秀頼撹岻朔宥狛現奉重云議圭塀繍屁侏峙2験峙欺忖灸糞箭議沫哈葎bird議了崔嶄。
厚謹購噐忖灸?Dictionary?現奉重云議佚連萩歌深響函才俐個忖灸
廣吭?Swift 嶄忖灸議現奉重云糞孖嶄?壓get何蛍卦指峙頁Int??貧箭嶄議numberOfLegs忖灸宥狛和円卦指議頁匯倖Int?賜宀傍“辛僉議int”?音頁耽倖忖灸議沫哈脅嬬誼欺匯倖屁侏峙?斤噐短嗤譜狛峙議沫哈議恵諒卦指議潤惚祥頁nil?揖劔?勣貫忖灸糞箭嶄評茅蝶倖沫哈和議峙匆峪俶勣公宸倖沫哈験峙葎nil軸辛。
現奉重云僉?
現奉重云塋俯販吭方楚議秘歌沫哈?旺拝耽倖秘歌窃侏匆短嗤尫崙。現奉重云議卦指峙匆辛參頁販採窃侏。現奉重云辛參聞喘延楚歌方才辛延歌方?徽聞喘亟秘響竃?in-out?歌方賜公歌方譜崔潮範峙脅頁音塋俯議。匯倖窃賜潤更悶辛參功象徭附俶勣戻工謹倖現奉重云糞孖?壓協吶現奉重云扮宥狛秘歌倖窃侏序佩曝蛍?聞喘現奉重云扮氏徭強謄塘栽癖議現奉重云糞孖塰佩?宸祥頁現奉重云議嶷墮。
匯倖現奉重云秘歌頁恷械需議秤趨?徽峪勣嗤栽癖議魁尚匆辛參協吶謹倖現奉重云秘歌。泌和箭協吶阻匯倖Matrix潤更悶?繍格孖匯倖Double窃侏議屈略裳專。Matrix潤更悶議現奉重云俶勣曾倖屁侏歌方?
struct Matrix {
let rows: Int, columns: Int
var grid: Double[]
init(rows: Int, columns: Int) {
self.rows = rows
self.columns = columns
grid = Array(count: rows * columns, repeatedValue: 0.0)
}
func indexIsValidForRow(row: Int, column: Int) -> Bool {
return row >= 0 && row < rows && column >= 0 && column < columns
}
subscript(row: Int, column: Int) -> Double {
get {
assert(indexIsValidForRow(row, column: column), "Index out of range")
return grid[(row * columns) + column]
}
set {
assert(indexIsValidForRow(row, column: column), "Index out of range")
grid[(row * columns) + columns] = newValue
}
}
}
Matrix戻工阻匯倖曾倖秘歌議更夛圭隈?秘歌蛍艶頁rows才columns?幹秀阻匯倖怎校否追rows * columns倖方議Double窃侏方怏。葎阻贋刈?繍方怏議寄弌才方怏耽倖圷殆兜兵峙0.0?脅勧秘方怏議更夛圭隈嶄栖幹秀匯倖屎鳩寄弌議仟方怏。購噐方怏議更夛圭隈才裂更圭隈萩歌深幹秀旺拝更夛匯倖方怏。低辛參宥狛勧秘栽癖議row才column議方楚栖更夛匯倖仟議Matrix糞箭?
var matrix = Matrix(rows: 2, columns: 2)貧箭嶄幹秀阻匯倖仟議曾佩曾双議Matrix糞箭。壓堋響乏會貫恣貧欺嘔和議Matrix糞箭嶄議方怏糞箭grid頁裳專屈略方怏議奄峠晒贋刈?
繍峙験公揮嗤row才column現奉重云議matrix糞箭燕器塀辛參頼撹験峙荷恬?現奉重云秘歌聞喘矯催蛍護
matrix[0, 1] = 1.5 matrix[1, 0] = 3.2貧中曾訳囂鞘蛍艶斑matrix議嘔貧峙葎 1.5?恫和峙葎 3.2?
Matrix現奉重云議getter才setter嶄揖扮距喘阻現奉重云秘歌議row才column頁倦嗤丼議登僅。葎阻圭宴序佩僅冱?Matrix淫根阻匯倖兆葎indexIsValid議撹埀圭隈?喘栖鳩範秘歌議row賜column峙頁倦氏夛撹方怏埆順?
func indexIsValidForRow(row: Int, column: Int) -> Bool {
return row >= 0 && row < rows && column >= 0 && column < columns
}
僅冱壓現奉重云埆順扮乾窟?let someValue = matrix[2, 2] // 僅冱繍氏乾窟?咀葎 [2, 2] 厮将階狛阻matrix議恷寄海業
<貧匯准
和匯准>