//: Playground - noun: a place where people can play
import UIKit
// # 類與結(jié)構(gòu)體的對比
struct Resolution {
var width = 0
var height = 0
}
class VideoMode {
var resolution = Resolution()
var interlaced = false
var frameRate = 0.0
var name: String?
}
let someResolution = Resolution()
let someVideoMode = VideoMode()
let vga = Resolution(width: 640, height: 480) // 默認的成員初始化器
// # 結(jié)構(gòu)體和枚舉是值類型
// # 類是引用類型
var videoModeArray = [VideoMode]()
videoModeArray += [someVideoMode, someVideoMode] // 現(xiàn)在videoModeArray[0]和videoModeArray[1]都是對someVideoMode的引用
videoModeArray[0].interlaced = true
videoModeArray[1].interlaced
func setVideoModeName(videoMode: VideoMode, asName name: String) {
videoMode.name = name
}
setVideoModeName(videoMode: someVideoMode, asName: "New Mode!") // 可見在函數(shù)中改變了someVideoMode的值
someVideoMode.name!
// trick: 把類實例聲明為常量和變量沒有區(qū)別,都可以改變成員屬性的值
var some = videoModeArray[1]
if videoModeArray[0] === some {
print("They refer to the same VideoMode instance")
} // 此時不能用==,因為沒有定義VideoMode的運算符,對應(yīng)的還有!==.而且可以發(fā)現(xiàn),不管===左右是常量還是變量都無所謂
// # 類和結(jié)構(gòu)體之間的選擇
/* 下列情況考慮結(jié)構(gòu)體:
結(jié)構(gòu)體的主要目的是為了封裝一些相關(guān)的簡單數(shù)據(jù)值磺箕;
當你在賦予或者傳遞結(jié)構(gòu)實例時奖慌,有理由需要封裝的數(shù)據(jù)值被拷貝而不是引用;
任何存儲在結(jié)構(gòu)體中的屬性是值類型松靡,也將被拷貝而不是被引用简僧;
結(jié)構(gòu)體不需要從一個已存在類型繼承屬性或者行為。
*/
struct sd {
let some = VideoMode()
}
var s = sd()
var t = s
s.some.name = "Haha"
t.some.name // 可見,s和t中的some同時引用了一個實例,不過還是把sd變成class比較好,要不然發(fā)揮不了struct值類型的作用
// # 字符串,數(shù)組和字典的賦值與拷貝行為
// NSString , NSArray 和 NSDictionary實例總是作為一個已存在實例的引用而不是拷貝來賦值和傳遞雕欺。
9.類和結(jié)構(gòu)體 Classes and Structures Swift官方文檔——版納的筆記
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門登澜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人唱逢,你說我怎么就攤上這事坞古』痉悖” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長黑竞。 經(jīng)常有香客問我很魂,道長法挨,這世上最難降的妖魔是什么窃植? 我笑而不...
- 正文 為了忘掉前任暴氏,我火速辦了婚禮关带,結(jié)果婚禮上豫缨,老公的妹妹穿的比我還像新娘。我一直安慰自己舍败,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灵嫌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绪穆。 梳的紋絲不亂的頭發(fā)上菠红,一...
- 文/蒼蘭香墨 我猛地睜開眼淋肾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布哑诊,位于F島的核電站暑劝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一嫁艇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸禽翼。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間马胧,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 文/端木婉清 圖/網(wǎng)絡(luò) 1 前幾日有一個讀者朋友在后臺問我,他說:婉清姐,你說年輕的時候有什么辦法可以快速擺脫掉貧...
- 有人問,創(chuàng)業(yè)是種什么樣的過程? 刺激?興奮际起?焦慮灾前?痛苦?糾結(jié)燕偶?...... 其實伯诬,沒有標準答案平项;但有些特質(zhì),卻是類...
- 有時候最懂你的人并不是陪你最久的人 真的诗箍,包括親人。 一直以來埂材,我感覺我認定的朋友竖独,我可以分享任何事情赊颠,但我...