# Constants Variable (ตัวแปร)

## Basic (พื้นฐาน)

ในภาษา Swift ซึ่งเป็นภาษาที่ใช้ในการพัฒนาแอปพลิเคชันบน iOS นั้น การจัดการกับข้อมูลสามารถทำได้ผ่าน **ค่าคงที่ (Constants)** และ **ตัวแปร (Variables)** โดยทั้งสองมีบทบาทสำคัญในการเขียนโปรแกรมที่มีประสิทธิภาพและปลอดภัย

### ค่าคงที่ (Constants)

ค่าคงที่คือค่าที่ถูกกำหนดครั้งเดียวและไม่สามารถเปลี่ยนแปลงได้ตลอดการทำงานของโปรแกรม ใน Swift เราสามารถประกาศค่าคงที่โดยใช้คีย์เวิร์ด `let` การใช้ค่าคงที่ช่วยให้โปรแกรมมีความปลอดภัยมากขึ้น เนื่องจากป้องกันการเปลี่ยนแปลงค่าที่ไม่คาดคิด

**ตัวอย่าง:**

```swift
let pi = 3.14159
```

ในตัวอย่างนี้ `pi` ถูกกำหนดเป็นค่าคงที่ที่มีค่า 3.14159 และไม่สามารถเปลี่ยนแปลงได้

### ตัวแปร (Variables)

ตัวแปรคือค่าที่สามารถเปลี่ยนแปลงได้ตามความต้องการของโปรแกรม ใน Swift เราสามารถประกาศตัวแปรโดยใช้คีย์เวิร์ด `var` การใช้ตัวแปรเหมาะสำหรับสถานการณ์ที่ค่าของข้อมูลมีแนวโน้มที่จะเปลี่ยนแปลงระหว่างการทำงานของโปรแกรม

**ตัวอย่าง:**

```swift
var counter = 0
counter = 1
```

ในตัวอย่างนี้ `counter` ถูกกำหนดเป็นตัวแปรที่เริ่มต้นด้วยค่า 0 และสามารถเปลี่ยนแปลงเป็นค่า 1 ได้

**สรุป**

* ใช้ `let` สำหรับค่าที่ไม่ต้องการให้เปลี่ยนแปลงหลังจากกำหนดแล้ว
* ใช้ `var` สำหรับค่าที่คาดว่าจะมีการเปลี่ยนแปลงในภายหลัง

การเลือกใช้ค่าคงที่หรือการใช้ตัวแปรอย่างเหมาะสมจะช่วยให้โค้ดของคุณมีความชัดเจนและลดข้อผิดพลาดที่อาจเกิดขึ้นได้

### การตั้งชื่อตัวแปร

เมื่อเราเลือกได้แล้วว่าจะใช้ var หรือ let เราสามรถสร้างชื่อตัวแปรที่เราอยากได้ โดยที่จะมีเงื่อนไขสำหรับชื่ออยู่นิดหน่อย ได้แก่ มีช่องว่าง (**whitespace characters**), เครื่องหมายทางคณิตศาสตร์ (**mathematical symbols**), ลูกศร (**arrows**), อักขระ Unicode สำหรับใช้งานส่วนตัว (**private-use Unicode scalar values**), หรืออักขระที่ใช้วาดเส้นและกล่อง (**line- and box-drawing characters**) ได้\
นอกจากนี้ ยังไม่สามารถขึ้นต้นด้วยตัวเลข (**number**) ได้ แต่สามารถมีตัวเลขอยู่ภายในชื่อได้

```swift
// Good
let π = 3.14159
let 你好 = "你好世界"
let 🐶🐮 = "dogcow"

// Bad
let _test = "Hello World"
let 12words = "Name of wordings"
let +variable = 10
```

### การแสดงผลในหน้า console

คำสั่งแรกๆ ที่เหล่านักพัฒนาจะต้องรู้ในทุกๆภาษาคือ print เป็นคำสั่งที่ใช้ในการโชว์ผลลัพธ์ หรือ เขียนข้อความลงใน console เพื่อการ debug

```swift
// Print string
print("Hello, Swift!")

// Print with parameter
let name = "John"
print(name)

// Print combine both of string and parameter
print("Hello, \(name)! Welcome to Swift programming."
```

### การใช้ Comment

เพื่อเพิ่มข้อความที่ไม่ถูก execute ในโค้ดของคุณ เช่น บันทึกหรือเตือนความจำให้ตัวเอง \
**comments** จะถูก Swift compiler มองข้ามเมื่อทำการ compile โค้ด

ตัวอย่างการใช้ **comments** ใน Swift:

```swift
// This is a single-line comment (English)
// นี่คือตัวอย่างคอมเมนต์บรรทัดเดียว (ภาษาไทย)
print("Hello, Swift!") // Prints a string to the console (แสดงข้อความในคอนโซล)

/* 
   This is a multi-line comment.
   You can use it for longer explanations. (English)

   นี่คือตัวอย่างคอมเมนต์หลายบรรทัด
   สามารถใช้เพื่ออธิบายโค้ดยาว ๆ ได้ (ภาษาไทย)
*/
let name = "John" // Declare a variable to store a name (ประกาศตัวแปรเก็บชื่อ)

// Printing a message with a variable
// แสดงข้อความพร้อมตัวแปร
print("Hello, \(name)! Welcome to Swift programming.") 
```

* ใช้ `//` สำหรับ **single-line comments**
* ใช้ `/* ... */` สำหรับ **multi-line comments**
* **comments** ไม่ส่งผลต่อการทำงานของโปรแกรม แต่ช่วยให้โค้ดอ่านง่ายขึ้น! 🚀

### การใช้ Semicolons

ถ้านักพัฒนาที่ใช้ภาษาเก่าๆหน่อย น่าจะคุ้นเคยกับการใช้ **Semicolon (\`;\`)** ในการจบประโยคคำสั่ง 1 บรรทัด

แต่ในภาษา Swift นั้นไม่เหมือนกับภาษาเก่าๆ เราจะใช้ Semiconlon สำหรับคนที่ต้องการทำ 2 คำสั่งใน 1 บรรทัด

```swift
let cat = "🐱"; print(cat)
// Prints "🐱"
```
