Thứ Ba, 8 tháng 10, 2019

Go Lang

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 ab int
    a = 1
    b = 2
---------- hoặc
    var a1b1 int = 1011
--------- hoặc
    var a2b2 = 1213
    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 name2address2age2 = "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