swift的string型別是值型別。如果你建立乙個新的string值,把它傳遞給乙個函式或方法,或者被賦給乙個常量或變數時,字串值的拷貝的。在每種情況下,會建立乙個當前字串的副本,傳遞的或者是賦值的都是新新建立的副本,而不是原來的版本了。值型別在「結構體和列舉都是值型別」當中有詳細的描述。
注意:這個行為不同於在cocoa的nsstring。當你在cocoa中建立了乙個nsstring例項,並且把它傳給乙個函式或方法或把它賦給乙個變數,你總是傳遞或賦乙個引用給相同的nsstring.沒有拷貝的字串代替,除非特別要求。
swift這種」預設拷貝字串「的行為確保當乙個方法或函式傳遞給你乙個字串值的時候,你擁有準確的string值,而不用管它是來自**的。你可以很確信的知道,傳遞的字串不會被改變,除非你自己修改它。
在底層,swift的編譯器優化了字串的使用,這樣可以保證只有當必要的時候,才會進行值的拷貝。這就意味著當使用值型別這種方式處理字串你的時候,總是能得到最好的效能。
第四節 字串屬於值型別
swift的string型別是值型別。如果你建立乙個新的string值,把它傳遞給乙個函式或方法,或者被賦給乙個常量或變數時,字串值的拷貝的。在每種情況下,會建立乙個當前字串的副本,傳遞的或者是賦值的都是新新建立的副本,而不是原來的版本了。值型別在 結構體和列舉都是值型別 當中有詳細的描述。注意 這...
字元填充 第四節 字串模式及字串新增
例子1 傳統 例子2 es6中寫法 let str 這個人叫 年齡是 歲 這個就叫字串模板 可以隨意換行 語法 例子3 傳統寫法字的符串鏈結 例子4 es6中字串鏈結的寫法 例子5 字串查詢,傳統寫法 或 if 去判斷false true 它的結果是 0 str.indexof 要找的東西 返回值是...
ObjC第四節 繼承
繼 承 1 繼承 1.1 nsobject,根類,oc建立的類都繼承自根類,位於類層次結構的頂層,沒有父類 1.2 父類的例項變數和方法都可以被隱式的繼承過來成為子類的一部分,子類就可以直接訪問這些例項變數和方法 1.3 alloc和init是繼承自nsobject的方法 1.4 繼承的概念呈單鏈繼...