Bài 05: Golang - Nhập Môn Cơ Bản-Defer recover panic-Pointer

Bài 05: Golang - Nhập Môn Cơ Bản-Defer recover panic-Pointer

  

Defer: khi khai báo Defer trong hàm thì dòng lệnh có chứa Defer sẽ được thực hiện trước khi cái hàm đó kết thúc.
Ta có các lệnh xuất ra màn hình như sau:
package main
import (
    "fmt"
)
func main() {
    fmt.Println("line1")
    fmt.Println("line2")
    defer fmt.Println("line3")
    fmt.Println("line4")
    defer fmt.Println("line5")
    fmt.Println("line6")
    fmt.Println("line7")
}

Kết quả : xuất ra 
line1
line2
line4
line6
line7
line5
line3

Cách chương trình chạy defer là nó sẽ dữ các giá trị trong một ngăn xếp và khi thực hiện xong nó sẽ quay lại lấy các lệnh defer trong ngăn xếp  ra để thực hiện.

package main
import (
    "fmt"
)
func main() {
    a := 10
    defer fmt.Println(a)
    a = 100
}
Kết quả 10
Giải thích:    khi chương trình chạy thí a được gán cho giá trị bằng 10 chạy đến defer nó sẽ đưa giá trị a=10 vào ngăn xếp và nó lấy giá trị a=10 vào thời điểm đó trong xuyên suốt chương trình khi giá trị a có thay đổi hay không.

Pointer

package main
import (
    "fmt"
)
func main() {
    var a int = 12
    var b *int = &a
    fmt.Println(a, *b)
    a = 100
    fmt.Println(a, *b)
}
hoặc là :
package main
import (
    "fmt"
)
func main() {
    var a int = 12
    var b *int = &a
    fmt.Println(a, *b)
    *b = 100
    fmt.Println(a, *b)
   
}
Kết quả 
12 12
100 100

Đăng nhận xét

0 Nhận xét

myadcash