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