April 24, 2024

arachimi studio

Little programmer in the world.

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 ซึ่งคงได้รับการต่อยอดในการใช้ในโปรเจคและถูกนำมาใช้อย่างมีประสิทธิภาพมากขึ้นในอนาคต

แหล่งที่ผมค้นคว้าหาความรู้

Source 1
Source 2