Constant and variable

Hằng số và biến số gắn kết một tên (ví dụ maximumNumberOfLogin hoặc welcomeMessage) với một giá trị thuộc một kiểu cụ thể nào đó (ví dụ số 10 hoặc chuỗi kí tự Hello). Giá trị của hằng số (constant) không thay đổi được sau khi được gán giá trị lần đầu tiên, giá trị của biến thì có thể.

Khai báo hằng số và biến số

Hằng và biến phải được khai báo trước khi nó được sử dụng. Hằng số được khai báo bằng từ khoá let con biến số được khai báo bằng var. Ví dụ sau khai báo hằng số lưu giá trị số lần login tối đa, và biến số lưu giá trị số lần login hiện tại:

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

Đoạn code trên có thể được hiểu:

"Khai báo một hằng số tên là maximumNumberOfLoginAttempts và gán giá trị 10 cho nó. Sau đó khai báo một biến số tên currentOfLoginAttempt và gán giá trị ban đầu cho biến là 0."

Trong ví dụ này, số lần login tối đa được khai báo là hằng số vì nó không thay đổi. Trong khi đó, số lần login hiện tại được khai báo là biến số vì nó tăng dần sau mỗi lần login thất bại.

Bạn có thể khai báo nhiểu biến hoặc hằng số trên cùng một dòng bằng cách ngăn cách với dấu phẩy:

var x = 0.0, y = 0.0, z = 0.0

CHÚ Ý

Nếu giá trị được lưu sẽ không bị thay đổi, nó nên và luôn luôn nên được khai báo với từ khoá let. Chỉ sử dụng var nếu giá trị lưu có thể bị thay đổi.

Khai báo kiểu

Kiểu của biến hoặc hằng số có thể được khai báo khi khai báo biến hoăc hằng số đó. Kiểu được khai báo bằng cách thêm : sau tên của hằng hoặc biến và viết tên của kiểu sau : cách một khoàng trống.

Ví dụ sau khai báo kiểu của biến là String

var welcomeMessage: String

Dấu : có nghĩa "...thuộc kiểu...", và đoạn code trên có thể được đọc: khai báo một biến tên welcomeMessage thuộc kiểu String

Biến welcomeMessage sau đó có thể được gán với bất cứ chuỗi kí tự nào

welcomeMessage = "hello"

Ta có thể khai báo nhiều biến với cùng một kiểu trên cùng một dòng

var red, green, blue: Double

CHÚ Ý

Rất hiếm khi ta phải khai báo kiểu, nếu giá trị khởi tạo của được gán. Kiểu của biến sẽ được suy ra từ giá trị được gán đó. Trong ví dụ trên, khi gán giá trị cho welcomeMessage là một chuỗi kí tự, kiểu của nó dược suy là String

Đặt tên có biến và hằng số

Tên của biến và hằng số có thể chứa bất cứ một kí tự nào bao gồm cả các kí tự Unicode:

let π = 3.14159
let 你好 = "你好世界"
let 🐶🐮 = "dogcow"

Tên của hằng và biến số không được phép chứa khoảng trống, kí tự toán học, dấu mũi tên, các kí tự không hợp lệ hoắc kí tự được sử dụng vào mục đích đặc biệt, các kí tự để vẽ đường thẳng và ô vuông. Kí tự số có thể xuất hiện bất kì vị trí nào trong tên trừ vị trí đầu tiên.

Khi một tên biến được khai báo, ta không thể dùng tên đó cho biến khác, hoặc thay đổi kiểu của biến, ta cũng không thể thay đổi từ dạng biến sang hằng số và ngược lại.

CHÚ Ý

Nếu ta đặt tên biến giống với một từ khoá trong Swift, ta phải đặt tên biến đó trong dấu (`) khi sử dụng tên đó. Tuy nhiên không nên sử dụng từ khoá như là tên của biến trừ khi bắt buộc.

Ta có thể thay đổi giá trị của một biến đã có sang một giá trị mới cùng kiểu. Ví dụ:

var friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"

Không giống như biến, giá trị của hằng số không thể bị thay đổi sau lần gán đàu tiên. Việc gán giá trị mới cho hằng số sẽ tạo ra lỗi khi biên dịch

let languageName = "Swift"
languageName = "Swift++"
// this is a compile-time error - languageName cannot be changed

Hiển thị hằng và biến

Ta có thể in giá trị hiện tại của biên hoặc hằng số với hàm print(_:separator:terminator:)

print(friendlyWelcome)
// Prints "Bonjour!"

Hàm print(_:separator:terminator:) là một hàm toàn cục (global), nó in một hoặc nhiều giá trị ra output thích hợp. Trong Xcode, nó sẽ in giá trị ra console. separatorternimator có giá trị mặc định nên ta có thể không cần truyền giá trị cho nó khi gọi. terminator có giá trị mặc định là kí tự kết thúc dòng, để in giá trị mà không xuống dòng, truyền vào string rỗng cho terminator, ví dụ: print(somevalue, terminator: ""). Xem chi tiết về tham số và giá trị mặc định: TODO: link to Default Parameter Value

Swift sử dụng nội suy chuỗi kí tự để chèn giá trị vào trong một chuối dài hơn. Để chèn giá trị vào một chuỗi được in ra, ta bọc giá trị đó trong dấu ngoặc và thêm dấu trước nó:

print("The current value of friendlyWelcome is \(friendlyWelcome)")

CHÚ Ý

Tất các các tuỳ chọn được dùng trong nội suy chuỗi kí tự được đề cập đầy đủ trong TODO: link to String Interpolation

Last updated

Was this helpful?