# Variable & Constant

การประกาศตัวแปรใน Swift จะมีหน้าตาการประกาศประมาณนี้

```swift
let <variable name>: <Type> = <Value>
var <variable name>: <Type> = <Value>
```

เช่น

```swift
let name: String = "pop"
var number: Int = 5
```

โดยที่ `let` จะใช้กับการประกาศตัวแปรที่เป็น constant นั่นคือจะไม่มีการเปลี่ยนแปลงค่า จนหมด scope ของตัวแปรนั้น

ส่วน `var` คือตัวแปรที่จะมีการเปลี่ยนแปลงค่าในภายหลัง

โดยปกติ Swift จะสามารถ infer type ของตัวแปรได้ทำให้เราสามารถละ Type ของตัวแปรได้ แต่ในบางครั้งเพื่อป้องกันความกำกวมเราก็จำเป็นต้องระบุลงไปด้วย

```swift
let implicitDouble = 70.0
let explicitDouble: Double = 70
```

ในบรรทัดที่ 2 ถ้าไม่กำหนด Type เป็น Double จะทำให้ infer type เป็น Int

{% hint style="info" %}
ในระหว่างที่เราเขียนโค้ดอยู่นั้น ถ้าเราอยากรู้ Type ของตัวแปร ให้เรากด `option + คลิ๊ก` ที่ตัวแปรนั้น
{% endhint %}

![กด option + คลิ๊ก ที่ชื่อตัวแปรเพื่อดู Type ของตัวแปรนั้น](https://759097476-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuqWEUpYllBlpWTYMEIgR%2Fuploads%2FuZQdI0BK3TwXgzsmF6Q5%2FScreen%20Shot%202022-06-24%20at%209.42.13%20PM.png?alt=media\&token=f2214e4d-9e0c-4727-bb19-c5f6b6a9550e)

โดยที่ชนิดตัวแปรที่สามารถใช้ได้ มีเยอะมาก โดยที่เราใช้หลัก ๆ จะมี `String` `Int` `Double` `Float` `Bool` `Character` `Optional`&#x20;

นอกจากนี้เรายังสามารถ custom type ของเราได้ด้วย `Enum`, `Struct` และ `Class`&#x20;
