溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

第四節(jié) 字符串屬于值類型

發(fā)布時間:2020-06-27 18:34:56 來源:網(wǎng)絡(luò) 閱讀:304 作者:habout632 欄目:移動開發(fā)

本文來自于瘋子們的開源圖書


Swift的String類型是值類型。如果你創(chuàng)建一個新的String值,把它傳遞給一個函數(shù)或方法,或者被賦給一個常量或變量時,字符串值的拷貝的。在每種情況下,會創(chuàng)建一個當(dāng)前字符串的副本,傳遞的或者是賦值的都是新新創(chuàng)建的副本,而不是原來的版本了。值類型在“結(jié)構(gòu)體和枚舉都是值類型”當(dāng)中有詳細的描述。

注意:

這個行為不同于在Cocoa的NSString。當(dāng)你在Cocoa中創(chuàng)建了一個NSString實例,并且把它傳給一個函數(shù)或方法或把它賦給一個變量,你總是傳遞或賦一個引用給相同的NSString.沒有拷貝的字符串代替,除非特別要求。

Swift這種”默認拷貝字符串“的行為確保當(dāng)一個方法或函數(shù)傳遞給你一個字符串值的時候,你擁有準(zhǔn)確的String值,而不用管它是來自哪里的。你可以很確信的知道,傳遞的字符串不會被改變,除非你自己修改它。
在底層,Swift的編譯器優(yōu)化了字符串的使用,這樣可以保證只有當(dāng)必要的時候,才會進行值的拷貝。這就意味著當(dāng)使用值類型這種方式處理字符串你的時候,總是能得到最好的性能。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI