Go內部培訓 節點解析61 63

2021-09-04 11:07:52 字數 1427 閱讀 7217

61. go 訊號處理

package main

import

"fmt"

import

"os"

import

"os/signal"

import

"syscall"

func

main()

()// 程式將等待接受訊號,然後退出

fmt.

println

("awaiting signal"

)<-done

fmt.

println

("exiting"

)}

62. go 原子計數器
package main

import

"fmt"

import

"time"

import

"sync/atomic"

import

"runtime"

func

main()

}()}

//等待1秒中,讓協程有時間執行一段時間

time.

sleep

(time.second)

// 為了能夠在counter仍被其他協程更新值的同時安全訪問counter值,

// 我們獲取乙個當前counter值的拷貝,這裡就是opsfinal,需要把

// ops的位址傳遞給函式`loaduint64`

opsfinal := atomic.

loaduint64

(&ops)

fmt.

println

("ops:"

, opsfinal)

}

63. go 正規表示式
package main

import

"bytes"

import

"fmt"

import

"regexp"

func

main()

64. go 指標
package main

import

"fmt"

// 我們用兩個不同的例子來演示指標的用法

// zeroval函式有乙個int型別引數,這個時候傳遞給函式的是變數的值

func

zeroval

(ival int

)// zeroptr函式的引數是int型別指標,這個時候傳遞給函式的是變數的位址

// 在函式內部對這個位址所指向的變數的任何修改都會反映到原來的變數上。

func

zeroptr

(iptr *

int)

func

main()

Go內部培訓 節點解析11 20

11.go line filterspackage main import bufio fmt os strings func main 在 scan 過程中,檢查錯誤。檔案結束不會被當作乙個錯誤 if err scanner.err err nil 12.go panicpackage main ...

Go內部培訓 節點解析21 30

21.go 並行通道channelpackage main import fmt func main 使用 channel 語法來從channel讀取資料 這裡我們從main函式所在的協程來讀取剛剛寫入 messages通道的資料 msg messages fmt.println msg 22.go...

Go內部培訓 節點解析41 50

41.go 程序執行package main import syscall import os import os exec func main exec 函式需要乙個切片引數,我們給ls命令一些 常見的引數。注意,第乙個引數必須是程式名稱 args string exec 還需要一些環境變數,這裡...