Scroll to top
Khái quát về hằng trong Go

Khái quát về hằng trong Go

ByYuto 13/10/2024 01:19
3min read

Trong lập trình, hằng số cũng giống như biến số, tuy nhiên không thay đổi được giá trị. Chúng ta chỉ có thể gán giá trị cho hằng lúc khai báo, và từ đó về sau hằng đó sẽ mang mãi một giá trị đó và không thể thay đổi.

Khái niệm về hằng số

Trong lập trình, hằng số cũng giống như biến số, tuy nhiên không thay đổi được giá trị. Chúng ta chỉ có thể gán giá trị cho hằng lúc khai báo, và từ đó về sau hằng đó sẽ mang mãi một giá trị đó và không thể thay đổi.

Cách khai báo hằng trong Golang

Cú pháp: const <tên hằng> <kiểu dữ liệu> = <giá trị>

Để khai báo một hằng thì chúng ta dùng từ khóa const, ví dụ:

go
Copy
1
2
3
4
5
6
7
8
package main

import "fmt"

func main() {
    const message string = "Hello World"
    fmt.Println(message)
}

Ở ví dụ trên, chúng ta khai báo hằng số tên là message, kiểu dữ liệu là string và gán giá trị Hello World

Bởi vì hằng số không thể thay đổi giá trị, do đó nếu chúng ta gán giá trị khác vào hằng thì chương trình sẽ báo lỗi

go
Copy
1
2
3
4
5
6
7
8
9
10
11
package main

import "fmt"

func main() {
    const message string = "Hello World"
    message = "Hi"
    fmt.Println(message)
}

// cannot assign to message (constant "Hello World" of type string)

Mục đích của việc khai báo hằng số là dùng để lưu các giá trị được dùng nhiều lần mà không cần phải khai báo lại, những giá trị mang tính không thay đổi, ví dụ như const Pi = 3.14

So sánh giữa khai báo hằng không có kiểu giá trị và có kiểu giá trị

Khai báo hằng không có kiểu giá trị

Chúng ta có thể khai báo hằng mà không cần kiểu giá trị cụ thể. Ví dụ như bên dưới, khai báo hằng số a có giá trị là 1, sau đó khai báo biến num1 kiểu int và num2 kiểu int32, cả 2 biến này đều có thể gán giá trị của hằng số a.

go
Copy
1
2
3
4
5
6
7
8
9
10
package main

import "fmt"

func main() {
    const a = 1
    var num1 int = a
    var num2 int32 = a
    fmt.Println(num1, num2)
}

Khai báo hằng có kiểu giá trị

Khi khai báo hằng số có kiểu giá trị, thì sau này chúng ta chỉ có thể gán giá trị của hằng vào biến mang cùng kiểu giá trị mà thôi. Ví dụ như bên dưới, khai báo hằng số a có kiểu int, sau đó khai báo biến num1 kiểu int và num2 kiểu int32, khi chúng ta gán giá trị của hằng a (kiểu int) vào biến num2 (kiểu int32) thì sẽ có lỗi và không thực hiện được.

go
Copy
1
2
3
4
5
6
7
8
9
10
11
12
package main

import "fmt"

func main() {
    const a int = 1
    var num1 int = a
    var num2 int32 = a
    fmt.Println(num1, num2)
}

// cannot use a (constant 1 of type int) as type int32 in variable declaration
Đánh giá bài viết: 4.9/5 (44 đánh giá)
Bạn chưa đánh giá

Bình luận

Author
hoclaptrinh.io author
Tác giả:Yuto Yasunaga

Mình là một full stack developer, tốt nghiệp và làm việc tại Nhật Bản. Trang web này là nơi mình tổng hợp, đúc kết và lưu trữ lại những kiến thức trong quá trình học và làm việc liên quan đến IT.
Hy vọng những bài viết ở website này sẽ có ích cho bạn.