Swift - อาร์เรย์

อาร์เรย์ Swift 4 ใช้เพื่อจัดเก็บรายการเรียงลำดับของค่าประเภทเดียวกัน Swift 4 ทำการตรวจสอบอย่างเข้มงวดซึ่งไม่อนุญาตให้คุณป้อนประเภทผิดในอาร์เรย์แม้ว่าจะผิดพลาดก็ตาม

หากคุณกำหนดอาร์เรย์ที่สร้างขึ้นให้กับตัวแปรมันจะไม่แน่นอนเสมอซึ่งหมายความว่าคุณสามารถเปลี่ยนแปลงได้โดยการเพิ่มลบหรือเปลี่ยนรายการ แต่ถ้าคุณกำหนดอาร์เรย์เป็นค่าคงที่อาร์เรย์นั้นจะไม่เปลี่ยนรูปและไม่สามารถเปลี่ยนแปลงขนาดและเนื้อหาได้

การสร้างอาร์เรย์

คุณสามารถสร้างอาร์เรย์ว่างบางประเภทโดยใช้ไวยากรณ์ตัวเริ่มต้นต่อไปนี้ -

var someArray = [SomeType]()

นี่คือไวยากรณ์สำหรับสร้างอาร์เรย์ของขนาดที่กำหนด a * และเริ่มต้นด้วยค่า -

var someArray = [SomeType](count: NumbeOfElements, repeatedValue: InitialValue)

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อสร้างอาร์เรย์ว่างของ Int ประเภทมี 3 องค์ประกอบและค่าเริ่มต้นเป็นศูนย์ -

var someInts = [Int](count: 3, repeatedValue: 0)

ต่อไปนี้เป็นอีกหนึ่งตัวอย่างในการสร้างอาร์เรย์ของสามองค์ประกอบและกำหนดค่าสามค่าให้กับอาร์เรย์นั้น -

var someInts:[Int] = [10, 20, 30]

การเข้าถึงอาร์เรย์

คุณสามารถดึงค่าจากอาร์เรย์โดยใช้ subscript ไวยากรณ์ส่งผ่านดัชนีของค่าที่คุณต้องการเรียกคืนภายในวงเล็บเหลี่ยมหลังชื่ออาร์เรย์ดังนี้ -

var someVar = someArray[index]

ที่นี่ indexเริ่มต้นจาก 0 ซึ่งหมายความว่าองค์ประกอบแรกสามารถเข้าถึงได้โดยใช้ดัชนีเป็น 0 องค์ประกอบที่สองสามารถเข้าถึงได้โดยใช้ดัชนีเป็น 1 และอื่น ๆ ตัวอย่างต่อไปนี้แสดงวิธีสร้างเริ่มต้นและเข้าถึงอาร์เรย์ -

var someInts = [Int](count: 3, repeatedValue: 10)

var someVar = someInts[0]
print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้

Value of first element is 10
Value of second element is 10
Value of third element is 10

การปรับเปลี่ยนอาร์เรย์

คุณสามารถใช้ได้ append()วิธีการหรือตัวดำเนินการกำหนดเพิ่มเติม (+ =) เพื่อเพิ่มรายการใหม่ที่ส่วนท้ายของอาร์เรย์ ลองดูตัวอย่างต่อไปนี้ ที่นี่ในขั้นต้นเราสร้างอาร์เรย์ว่างแล้วเพิ่มองค์ประกอบใหม่ลงในอาร์เรย์เดียวกัน -

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

var someVar = someInts[0]

print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้

Value of first element is 20
Value of second element is 30
Value of third element is 40

คุณสามารถแก้ไของค์ประกอบที่มีอยู่ของ Array ได้โดยกำหนดค่าใหม่ที่ดัชนีที่กำหนดดังที่แสดงในตัวอย่างต่อไปนี้ -

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

// Modify last element
someInts[2] = 50

var someVar = someInts[0]

print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้

Value of first element is 20
Value of second element is 30
Value of third element is 50

การทำซ้ำบนอาร์เรย์

คุณสามารถใช้ได้ for-in วนซ้ำเพื่อวนซ้ำชุดค่าทั้งหมดในอาร์เรย์ดังที่แสดงในตัวอย่างต่อไปนี้ -

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]
for item in someStrs {
   print(item)
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้

Apple
Amazon
Google

คุณสามารถใช้ได้ enumerate() ฟังก์ชันที่ส่งคืนดัชนีของรายการพร้อมกับค่าดังที่แสดงด้านล่างในตัวอย่างต่อไปนี้ -

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]

for (index, item) in someStrs.enumerated() {
   print("Value at index = \(index) is \(item)")
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้

Value at index = 0 is Apple
Value at index = 1 is Amazon
Value at index = 2 is Google

การเพิ่มสองอาร์เรย์

คุณสามารถใช้ตัวดำเนินการเพิ่ม (+) เพื่อเพิ่มอาร์เรย์ประเภทเดียวกันสองอาร์เรย์ซึ่งจะให้อาร์เรย์ใหม่ที่มีการรวมกันของค่าจากอาร์เรย์ทั้งสองดังนี้

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB
for item in intsC {
   print(item)
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้

2
2
1
1
1

คุณสมบัติการนับ

คุณสามารถใช้แบบอ่านอย่างเดียว count คุณสมบัติของอาร์เรย์เพื่อค้นหาจำนวนรายการในอาร์เรย์ที่แสดงด้านล่าง -

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

print("Total items in intsA = \(intsA.count)")
print("Total items in intsB = \(intsB.count)")
print("Total items in intsC = \(intsC.count)")

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้

Total items in intsA = 2
Total items in intsB = 3
Total items in intsC = 5

ทรัพย์สินที่ว่างเปล่า

คุณสามารถใช้แบบอ่านอย่างเดียว empty คุณสมบัติของอาร์เรย์เพื่อค้นหาว่าอาร์เรย์ว่างหรือไม่ตามที่แสดงด้านล่าง -

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()

print("intsA.isEmpty = \(intsA.isEmpty)")
print("intsB.isEmpty = \(intsB.isEmpty)")
print("intsC.isEmpty = \(intsC.isEmpty)")

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้

intsA.isEmpty = false
intsB.isEmpty = false
intsC.isEmpty = true