Go – Biến

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về biến trong Go.

Biến là tên được đặt cho một vị trí bộ nhớ để lưu trữ giá trị của một kiểu cụ thể. Có nhiều cú pháp khác nhau để khai báo các biến trong Go.

Khai báo biến đơn

var tên kiểu là cú pháp để khai báo một biến đơn

Câu lệnh var age int khai báo một biến tên là age với kiểu int, không có bất kỳ giá trị nào được gán cho biến này. Nếu một biến không được gán giá trị, Go tự động gán giá trị mặc định 0 theo kiểu của biến. Trong trường hợp này age được gán bằng 0. Nếu bạn chạy chương trình này, bạn có thể nhìn thấy kết quả đầu ra như sau

Một biến có thể được gán cho bất kỳ giá trị nào phù hợp với kiểu của nó. Trong chương trình ở bên trên age có thể được gán bất kỳ giá trị nào với kiểu là số nguyên.

Kết quả

Khai báo một biến với giá trị khởi tạo

Một biến có thể được gán một giá trị khởi tạo khi khai báo biến.

var tên kiểu = giá trị khởi tạo là cú pháp dùng để khai báo một biến với giá trị khởi tạo.

age là biến với kiểu int và có giá trị khởi tạo là 29.

Nếu bạn chạy chương trình bạn sẽ nhận được kết quả như sau. Nó cho thấy rằng age được gán giá trị khởi tạo là 29

Suy luận kiểu

Nếu một biến có một giá trị khởi tạo, Go có thể tự động suy luận ra kiểu của biến sử dụng giá trị khởi tạo đó. Vì thế nếu một biến có một giá trị khởi tạo thì kiểu trong khai báo biến có thể được bỏ qua.

Do đó nếu khai báo biến sử dụng cú pháp var tên = giá trị khởi tạo, Go sẽ tự động suy luận ra kiểu của biến từ giá trị khởi tạo

Trong ví dụ sau đây, bạn có thể thấy rằng kiểu int của biến age đã được loại bỏ tại dòng thứ 6. Vì biến có giá trị khởi tạo là 29, Go có thể suy luận ra kiểu của nó là int.

Khai báo nhiều biến

Chúng ta có thể khai báo nhiều biến trong một câu lệnh đơn.

var tên1, tên2 kiểu = giá trị khởi tạo 1, giá trị khởi tạo 2 là cú pháp để khai báo nhiều biến một lúc.

Kiểu có thể được bỏ qua nếu các biến có giá trị mặc định. Chương trình bên dưới đây khai báo nhiều biến sử dụng suy luận kiểu

Kết quả

Có thể giờ đây bạn sẽ suy luận ra được là nếu giá trị khởi tạo không được gán cho widthheight, thì giá trị mặc định 0 sẽ được gán cho.

Kết quả

Có thể có trường hợp chúng ta muốn khai báo các biến thuộc kiểu khác nhau trong một câu lệnh duy nhất. Cú pháp để làm điều này là

Hãy cùng xem ví dụ sau đây sử dụng cú pháp bên trên để khai báo biến với kiểu khác nhau.

Ở đây chúng ta khai báo một biến name với kiểu string, ageheight với kiểu int

Kết quả

Khai báo ngắn gọn

Go cũng cung cấp cách ngắn gọn khác để khai báo biến, sử dụng toán tử :=

tên := giá trị khởi tạo – cú pháp ngắn gọn để khai báo biến

Kết qủa

Khai báo ngắn gọn yêu cầu có giá trị mặc định cho tất cả các biến nằm ở phái bên trái của khai báo. Trong trường hợp age không được gán giá trị, chương trình sẽ đưa ra một lỗi cannot assign 1 values to 2 variables

Cú pháp ngắn gọn chỉ có thể được sử dụng khi ít nhất một trong các biến trong phía bên trái của := được khai báo mới. Hãy cùng xem ví dụ sau

Như chúng ta đã thấy, tại hàng số 8 thì b đã được khai báo nhưng c thì mới.

Kết quả

Trong khi nếu chúng ta chạy ví dụ bên dưới đây

Nó sẽ đưa ra một lỗi no new variables on left side of :=. Điều này là bởi vì cả 2 biến ab đã được khai báo, và không có biến mới nào ở phía bên trái :=

Các biến cũng có thể được gán các giá trị được tính toán trong lúc chạy. Hãy xem chương trình sau

Giá trị c được tính toán trong lúc chạy, do dó giá trị nhỏ nhất của ab được in ra như sau

Vì Go là kiểu tĩnh, các biến được khai báo thuộc về một kiểu và không thể được gán giá trị của kiểu khác. Nếu chúng ta khai báo age kiểu số nguyên và thử gán cho nó giá trị kiểu string thì chương trình sẽ đưa ra một lỗi cannot use "naveen" (type string) as type int in assignment

 

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

avatar
  Subscribe  
Notify of