[Swift 3] – Bài 3. Biến và hằng số

Biến và hằng số là yếu tố cực kỳ quan trọng, không thể thiếu trong bất kỳ một ngôn ngữ lập trình nào. Nó giúp chúng ta lưu trữ dữ liệu theo “kiểu dữ liệu” được lập trình viên quy định.
Hiểu một cách đơn giản, bạn đang muốn pha một ly cà phê nóng. Lúc này, bạn đang có một hũ chứa bột cà phê, một bình nước nóng và một hũ đường, những thứ này bạn hình dung đó là kiểu dữ liệu. Trong mỗi loại đều quy định về tính chất, hàm lượng, định lượng, … của chính nó. Bạn xúc 5 muổng cà phê, 1 muổng đường, 250ml nước nóng. Vậy lúc này 5 muổng cà phê chính là “biến”, trong đó có chứa kiểu là cà phê, số lượng 5 muỗng. Tương tự như vậy bạn có thêm 2 biến nữa lần lượt là “1 muỗng đường” trong đó chứa kiểu dữ liệu là đường và số lượng là 5 muỗng; “250ml nước nóng” là biến có chứa số lượng là 250ml và kiểu là nước nóng. Bạn đem những biến này kết hợp với kinh nghiệm (kỹ thuật lập trình) trộn với nhau, đợi một chút và thưởng thức ly cà phê nóng thơm ngon vô cùng. Tới đây bạn có thể hình dung về cơ bản biến là gì rồi, nhưng để hiểu rõ hơn, hãy cùng xem những định nghĩa và ví dụ cụ thể bên dưới nhé.

Định nghĩa và khai báo:

Biến (Variable): được định nghĩa là vị trí trong bộ nhớ máy tính mà nơi đó dùng để lưu trữ dữ liệu phù hợp với kiểu dữ liệu được gán cho biến đó. Mỗi biến được đặt tên khác nhau sao cho không phạm vào các quy ước đặt tên của ngôn ngữ Swift và được lưu chỉ một giá trị nhất định. Một biến không thể cùng lưu hai giá trị. Giá trị đó có thể là chuỗi, là số, là mảng, … hay thậm chí giá trị đó có thể là rỗng (null). Dựa vào tên của biến để đọc, ghi dữ liệu lưu trên biến.
Hằng số tương tự như biến, nó được cung cấp một nơi để lưu trữ giá trị mà lập trình viên gán vào. Hằng số chỉ khác với biến ở chỗ, khi đã gán giá trị rồi thì trong toàn bộ quá trình viết mã, lập trình viên không thể thay đổi giá trị của hằng số. Nói cách khác, lập trình viên không thể dùng toán tử gán (sẽ tìm hiểu ở phần sau) để thay đổi giá trị của một hằng số khi đã gán cho nó. Ta có thể gọi một hằng số là biến (biến hằng số).
Ví dụ trên, mình dùng biến để lưu họ tên, vì họ tên có thể thay đổi theo thời gian, còn đối với năm sinh thì không. Cho nên mình sử dụng biến hằng số để lưu giá trị năm sinh. Dĩ nhiên, bạn sẽ dùng biến để lưu giá trị tuổi chứ không dùng hằng số để lưu nó.

Bạn dùng từ khoá var để khai báo biến và từ khoá let để khai báo hằng số.

Để khai báo nhiều biến trên cùng một dòng lệnh, bạn làm như sau:
Như bạn thấy, việc khai báo này rất tiện. Và có một điều đặc biệt nữa, bạn có thể dùng các ký tự tiếng Việt để đặt tên cho biến, thậm chí dùng các ký tự đặc biệt nữa. Nhưng hãy nhớ, viết đúng tên khi gọi biến nào đó nhé!

Chú thích kiểu dữ liệu:

Đặt trọn bộ sách, CD, DVD lập trình Swift 3, iOS 10 tại: https://goo.gl/yB2Nxn

Mặc định, khi bạn khai báo một biến và gán giá trị cho biến đó, Swift sẽ tự động định nghĩa kiểu dữ liệu cho nó. Có nghĩa là nếu bạn gán cho biến đó giá trị là 5 thì Swift sẽ tự hiểu đó có kiểu số nguyên, và biến đó được mang giá trị số nguyên trong suốt quá trình sử dụng.
Tuy nhiên, để chắc chắn, bạn có thể chú thích kiểu dữ liệu mà biến sẽ nhận được bằng cách sau (các kiểu dữ liệu sẽ được trình bày ở phần sau):

In ra giá trị của biến:

Việc làm này nói với Xcode xuất ra giá trị của biến mà bạn muốn biết qua cửa sổ console, bằng cách dùng câu lệnh print và gọi tên biến. Bạn sẽ thấy giá trị xuất hiện ngay ở cửa sổ console bên dưới, như hình:

Chú thích trong quá trình lập trình:

 

Đặt trọn bộ sách, CD, DVD lập trình Swift 3, iOS 10 tại: https://goo.gl/yB2Nxn

Trong quá trình lập trình, bạn cần phải ghi chú lại nội dung của đoạn mã nào đó, để sau này, khi chỉnh sửa hoặc đọc mã, nó sẽ giúp bạn nhanh chóng hiểu đoạn mã đó hơn. Dĩ nhiên, bạn sẽ không bao giờ nhớ được hết toàn bộ các đoạn mã bạn đã viết. Điều này còn giúp ích cho quá trình làm việc nhóm của các bạn nữa. Ai cũng có thể hiểu bạn đang viết cái gì. Bạn làm như sau:

Dấu chấm phẩy ( ; ):

Trong ngôn ngữ Objective-C, cuối mỗi câu lệnh đều phải có dấu chấm phẩy, mục đích thông báo cho trình biên dịch biết rằng đã kết thúc dòng lệnh. Tuy nhiên, không giống như ngôn ngữ Objective-C, Swift không yêu cầu bạn thêm vào cuối mỗi câu lệnh dấu chấm phẩy, mà Swift đã thông minh hiểu được câu lệnh hoặc khối lệnh của bạn kết thúc lúc nào. Mặc dù thế, trong một số trường hợp, bạn vẫn phải sử dụng dấu chấm phẩy để biểu thị sự kết thúc của dòng lệnh và bắt đầu dòng lệnh mới. Xem ví dụ nhé:

Optional type:

 

Đặt trọn bộ sách, CD, DVD lập trình Swift 3, iOS 10 tại: https://goo.gl/yB2Nxn

 

Mặc định, khi khai báo biến, bạn cần phải truyền giá trị (gán giá trị) cho biến đó, để máy tính cấp phát bộ nhớ lưu trữ giá trị. Nhưng trong một số trường hợp, ban đầu bạn tạo biến mà không nuốn gán giá trị cho nó (giá trị rỗng) hoặc trong quá trình thực thi, không có giá trị nào trả về cho biến, lúc này, giá trị chắc chắn phải là rỗng. Vậy nên, Swift có Optional type là một biến mà giá trị của nó có thể là rỗng (nill) giúp cho bạn.
Để tạo ra một biến có thể mang giá trị rỗng, bạn chỉ cần thêm vào cuối kiểu dữ liệu của biến dấu chấm hỏi ( ? ).
Để đọc giá trị có trong biến đó, bạn chỉ cần sử dụng dấu chấm than ( ! ). Apple nói rằng, dấu chấm than sẽ bóc tách giá trị ra khỏi Optinal cho bạn. Hãy xem ví dụ:

Mong nhận được sự góp ý và chia sẻ của các bạn để tài liệu được hoàn thiện hơn.

Đặt trọn bộ sách, CD, DVD lập trình Swift 3, iOS 10 tại: https://goo.gl/yB2Nxn

Like - Share - và cho tụi mình biết ý kiến của bạn bằng cách bình luận bên dưới nhé