I. Khai báo biến trong Golang
package main
import "fmt"
func main() {
var num int = 11 // Khai báo biến đơn giản (có kiểu dữ liệu)
fmt.Println(num)
var email = "truongtoan@gmail.com" // khai báo biến có kiểu dữ liệu là 1 string
==================================
1. Khai báo nhiều biến cùng kiểu dữ liệu
var a, b int
a = 1
b = 2
---------- hoặc
var a1, b1 int = 10, 11
--------- hoặc
var a2, b2 = 12, 13
2. Khai báo nhiều biến Khác kiểu dữ liệu
------------ cách 1 -- khởi tạo và gán
var (
name string
address string
age int
)
name = "Robin"
address = "Viet Name"
age = 15
------------- cách 2 -- khởi tạo luôn khi khai báo mà ko cần gán
var (
name1 string = "name1"
ad1 string = "address1"
age1 int = 25
)
---------------- cách 3 -- khởi tạo + khai báo (auto map)
var name2, address2, age2 = "name2" , "address2", 25
}
------------------ Khai báo ngắn gọn (và gán luôn ) bởi := ko cần dùng var
language := "Golang"
II. Kiểu dữ liệu và hằng số
1. Khai báo
Khai báo kiểu Bool
var myBool bool = true // false
// String
var myString string = "hello"
// int
var myInt int = 123
Kiểu Range
// Range cuar int 8
fmt.Println(math.MinInt8)
fmt.Println(math.MaxInt8)
// Range cuar int 16
fmt.Println(math.MinInt16)
fmt.Println(math.MaxInt16)
// Range cuar int 32
fmt.Println(math.MinInt32)
fmt.Println(math.MaxInt32)
// Range cuar int 64
fmt.Println(math.MinInt64)
fmt.Println(math.MaxInt64)
Kiểu bits
// Số lượng bit tối đa mà nó có thể đại diện cho
// cái giá trị của biến có kiểu dữ liệu dạng này là
// 8 bit
fmt.Println(bits.OnesCount8(math.MaxUint8)) // 8
fmt.Println(bits.OnesCount16(math.MaxUint16)) // 16
fmt.Println(bits.OnesCount32(math.MaxUint32)) // 32
fmt.Println(bits.OnesCount64(math.MaxUint64)) // 64
Kiểu uint -- số nguyên dương (số ko dấu)
var myUInt uint = 10
Kiểu byte chính là kiểu uint (unsize int)
var myByte byte = 1 // kiểu này có max = 255, lớn hơn sẽ báo lỗi
Kiểu float -- số thực
var myFloat float64 = 10.01
Kiểu complex z = a + bi (a: số nguyên, bi: số ảo)
var z1 complex64 = 10 + 1i
var z2 = complex64 = 10 + 1i
fmt.Println(z1+z2) // ==> 20 + 2i
kiểu Rune : không quan trọng là bao nhiêu byte nó có thể chiếm
var myString string = "Nhẫn"
runes := []rune(myString) // ép kiểu string sang kiểu rune
for i := 0; i < len(runes); i++ {
fmt.Printf(rune[i])
}
vd2: kí tự A đặc biệt có thể chiếm 4 byte
var myRune rune rune = 'A' // in ra int32
Zero values
// Khi khai báo biến mà mặc định ko gán giá trị gì thì
- với kiểu int giá trị mặc định được gán là 0
- kiểu bool giá trị mặc định được gán là false
- kiểu string ko gán giá trị nó là "" (empty string)
Type conversion -- chuyển từ kiểu dữ liệu này sang dạng kiểu dữ liệu khác
VD:
var a int = 1
var b float64 = 2.1
fmt.Println(a+b) // ==> Lỗi
fmt.Println(float64(a)+b) // ==> 3.1
// ==> truyền type cho nó vd float64(b)
Khai báo: Const // Có thể là kiểu character, string, boolean hay kiểu số (numeric values)
// Ko thể khai báo dạng shorthand := syntax
const PI = 3.14
fmt.Println(PI)
Kiểu uintptr // dùng để lưu trữ địa chỉ của con trỏ
/*
key - value
key - uintptr
value = abject (*point)
key = (*point) -> uintptr
map.put(key, value)
*/
III.
IV.
Không có nhận xét nào:
Đăng nhận xét