Swift Tuples
1 min read
สวัสดีครับ บทความนี้จะเป็นบทความแรกเกี่ยวกับภาษา Swift ที่ผมกำลังศึกษา พอดีไปเจอกับเจ้า Tuples เห็นว่าน่าสนใจดีก็เลยลองเขียนบทความเกี่ยวกับการใช้ Tuples เพื่อแบ่งปันให้กับผู้ที่หลงเข้ามาอ่าน และเป็นบันทึกไว้เตือนความจำเอาไว้กลับมาอ่านในอนาคต 🙂
การประกาศตัวแปรของภาษา swift หลายๆตัว ปกติแล้วเราสามารถทำได้โดยการประกาศตัวแปรแต่ละตัวออกไป
let firstVar = 1 let secondVar = 2
แต่เราสามารถนำค่าของตัวแปรของสองตัวด้านบนมาเก็บไว้ได้ในตัวแปรเดียว หลักการนี้เรียกว่า Tuples
วิธีการประกาศ Tuples
ตัวอย่างการประกาศตัวแปรสี่เหลี่ยมผืนผ้าที่มีด้านกว้างและด้านยาวอย่างละ 10 และ 50 เราสามารถประกาศตัวแปรเหมือนการประกาศตัวแปรหรือค่าคงที่อื่นๆ ซึ่งค่าต่างๆถูกคั่นด้วยเครื่องหมายจุลภาค ( , ) ภายในวงเล็บ
let rectangle = (10,50)
หลังจากนี้เราจะได้ตัวแปร Tuples ที่เรียกว่า rectangle
Tuples สามารถเก็บตัวแปรหลากหลายประเภทได้ ไม่จำเป็นต้องเป็นประเภทเดียวกันเสมอไป
let province = ("Chiangmai", 50000)
จะได้ตัวแปร province ที่เป็น Tuples มีค่า “Chiangmai” เป็นประเภท String และ 50000 เป็น Integer ตามลำดับ
การเรียกใช้ Tuples เราเรียกวิธีการนี้ว่า Decompose Tuples เราแค่ทำการระบุตำแหน่งของตัวแปรที่เราต้องการ ซึ่งจะเริ่มต้นด้วยตำแหน่งที่ศูนย์
let person = ("Cristiano", "Ronaldo") let firstName = person.0 // Cristiano let lastName = person.1 // Ronaldo
หรือเราสามารถกำหนดเป็นตัวแปรแต่ละตัวเพื่อเรียกใช้ Tuples ได้
let person = ("Cristiano", "Ronaldo") let (firstName, lastName) = person // firstName = "Cristiano" // lastName = "Ronaldo"
หากเราต้องการเพียงแค่ตัวแปรบางตัว เราสามารถใช้ Underscore ( _ ) เพื่อแทนที่ตัวแปรที่เราไม่ต้องการได้
let person = ("Cristiano", "Ronaldo") let (firstName, _ ) = person // firstName = "Cristiano"
การตั้งชื่อให้กับสมาชิกใน Tuples
let person = (firstName : "Cristiano", lastName : "Ronaldo") let personName = person.firstName // Cristiano let personLastName = person.lastName // Ronaldo
เมื่อเราประกาศตัวแปรประเภท Tuples แล้ว เรามาสามารถสร้าง Tuples อีกตัวขึ้นมาลักษณะคล้ายๆการก็อปปี้ได้
var origin = (x: 0, y: 0) var point = origin point.x = 3 point.y = 5 print(origin) // (0, 0) print(point) // (3, 5)
โดยส่วนตัวแล้ว รู้สึกชอบตัวแปรประเภท Tuples นี้เป็นพิเศษ บทความด้านบนเป็นพื้นฐานของ Tuples ซึ่งคงได้รับการต่อยอดในการใช้ในโปรเจคและถูกนำมาใช้อย่างมีประสิทธิภาพมากขึ้นในอนาคต
แหล่งที่ผมค้นคว้าหาความรู้