Swift可変配列


Objective-Cは、可変配列(NSArray)と可変配列(NSMutableArray)を区別する2つの異なるクラスを記述しています.
Swiftは定数と変数を用いて可変配列と可変配列を区別する.
配列を定数として定義すると、次のような可変配列になります.
let constantArray = ["a", "b", "c", "d"]

配列を変数として定義します.これは、次のような可変配列です.
var mutableArray = ["e", "f", "g", "h", "i"]

Swiftの可変配列と可変配列の性質はObjective-Cとほぼ同じであることから,筆者の別文:『NSArrayとNSMutableArrayのcopyとMutableCopy』
 
したがって、可変配列は配列自体を変更することはできない(すなわち、配列のサイズを変更したりappend,removeを使用したりするなど、配列レベルで変更することはできない)が、配列内の要素を変更することはできる:
class classA {                        //    classA
    var aString: String               //classA     aString
    
    init(str: String) {               //    
        aString = str
    }
}
var b: classA = classA(str:"b");      //  3 classA     b,c,d
var c: classA = classA(str:"c");
var d: classA = classA(str:"d");
let classAs = [b, c, d]               // b,c,d               

var f = classAs[1]                    //    f  ,     classA     c
print(classAs[1].aString)             //  c       
f.aString = "eeee"                    //  f       
print(classAs[1].aString)             //    c       

実行結果:
c
eeee

 
ここでは、Swift文字列Stringタイプが値タイプであることを検証する実験を行うことができます.
let intArray = [1, 7, 100, 101, -9, 0]
var myInt = intArray[4]
print(intArray[4])                                               
myInt = 10000000
print(intArray[4])                                               //Int      ,       

let stringArray = ["str1", "str2", "str3", "str4"]              //             
var myStr = stringArray[2]                                      //    myStr  ,    "str3"
print(stringArray[2])                                           //  str3
myStr = "anotherString"                                         //  myStr
print(stringArray[2])                                           //    str3

実行結果:
-9
-9
str3
str3

 
転載先:https://www.cnblogs.com/KardelXiao/p/5888767.html