Swift中使用結(jié)構(gòu)體

事情發(fā)生在我需要給一個數(shù)組中符合條件的model某個屬性重新賦值時蓉坎。
下面是示例的代碼。

struct TestStruct {
    var str: String = ""
}

var arr1: [TestStruct] = []
var arr2: [TestStruct] = []

for _ in 0..<5 {
    let s1 = TestStruct(str: "One")
    let s2 = TestStruct(str: "Two")
    
    arr1.append(s1)
    arr2.append(s2)
}


for s1 in arr1 {
    for var s2 in arr2 {
        s2.str = s1.str
    }
}

// 預(yù)期是 arr2 中的所有TestStruct的str屬性值變?yōu)?One
for s in arr2 {
    print(s.str)  // 實際結(jié)果  Two Two Two Two Two
}

這樣寫之后胡嘿,發(fā)現(xiàn)arr2中的值并沒有如我們想象的一樣。

在Swift中钳踊,結(jié)構(gòu)體屬于數(shù)值類型衷敌,不同于類的引用。

類拓瞪,在每次賦值時缴罗,只是增加了對它的引用;
結(jié)構(gòu)體祭埂,在發(fā)生賦值時都是復(fù)制了一個新的結(jié)構(gòu)體對象面氓。

所以我們對上面的代碼做一些修改:

/**
 * for s1 in arr1 {
 *    for var s2 in arr2 {
 *        s2.str = s1.str // 這里將arr2 的 TestStruct取出賦值給 s2, 實際會重新復(fù)制一個出來,s2 并不是 arr2 內(nèi)存儲的那個結(jié)構(gòu)體蛆橡。
 *    }
 * }
*/

for s1 in arr1 {
    for index in 0..<arr2.count {
        arr2[index].str = s1.str // 這里直接使用下標(biāo)取出arr2中的TestStruct舌界。
    }
}

for s in arr2 {
    print(s.str)  // One One One One One
}

這樣我們就完成了賦值啦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泰演,一起剝皮案震驚了整個濱河市呻拌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌睦焕,老刑警劉巖藐握,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異垃喊,居然都是意外死亡猾普,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門本谜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來初家,“玉大人,你說我怎么就攤上這事耕突◇猿桑” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵眷茁,是天一觀的道長炕泳。 經(jīng)常有香客問我,道長上祈,這世上最難降的妖魔是什么培遵? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任浙芙,我火速辦了婚禮,結(jié)果婚禮上籽腕,老公的妹妹穿的比我還像新娘嗡呼。我一直安慰自己,他們只是感情好皇耗,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布南窗。 她就那樣靜靜地躺著,像睡著了一般郎楼。 火紅的嫁衣襯著肌膚如雪万伤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天呜袁,我揣著相機(jī)與錄音敌买,去河邊找鬼。 笑死阶界,一個胖子當(dāng)著我的面吹牛虹钮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膘融,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼芙粱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了氧映?” 一聲冷哼從身側(cè)響起宅倒,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屯耸,沒想到半個月后拐迁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡疗绣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年线召,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片多矮。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡缓淹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出塔逃,到底是詐尸還是另有隱情讯壶,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布湾盗,位于F島的核電站伏蚊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏格粪。R本人自食惡果不足惜躏吊,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一氛改、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧比伏,春花似錦胜卤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悠菜,卻和暖如春紫新,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背李剖。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留囤耳,地道東北人篙顺。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像充择,于是被迫代替她去往敵國和親德玫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫椎麦、插件宰僧、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評論 4 62
  • 你有怎樣的故事,來聽聽別人的故事吧观挎!有一個女孩她的名字瞳媣“她讀六年級的時候她們班剛好轉(zhuǎn)來一個女同學(xué)名字叫小婷”學(xué)...
    瞳媣閱讀 302評論 0 1
  • 湖的聯(lián)想 作者:飄聆 世人向往的人間仙境 波光忽閃忽閃的 倒映著千年的樹影 世間萬物化為海市 匯集人類的足跡 休憩...
    飄聆閱讀 357評論 0 0
  • “這次是真的分手了嘁捷。不造成!是她悔婚!我是被她拋棄的那個人……” 大二那年雄嚣,他們在大學(xué)相遇晒屎,她被他的才華吸引,而他也覺...
    圍魏救趙閱讀 94評論 0 0
  • 我看到我送出的一把把匕首 因為我愛你 它們刀刀致命 因為我愛你 它們蓄謀多時 你飛濺出的血霧里 有一半是我的 在天...
    千秋_閱讀 305評論 3 6