YAML

配置多行字串 參考 使用 |, |+, |- 配置 |: 文中自動換行 + 文末新增 1 行空行 |+: 文中自動換行 + 文末新增 2 行空行 |-: 文中自動換行 + 文末不新增行

docker

清除沒用到的物件 WARNING! This will remove: all stopped containers all networks not used by at least one container all dangling images all dangling build cache docker system prune

Local development setting

整理 service local k8s username password mysql 30000 3306 root secret postgresql 30001 5432 root secret redis 30002 6379 etcd 30003 2379, 2380 root 本機開發安裝項目 zsh 安裝 powerlevel10k 主題 site golang 先至 golang 官網安裝一版新的 golang (因為要有 golang 才可以 build golang) website install 安裝 GVM 來管理 golang 套件 site GVM 安裝後就可以安裝各種對應版本的 golang intel 是 amd64 M1 (apple silicon) 是 arm64 安裝 Goland website install Optional:

fundamental2

Reading and Writing bufio 用於 buffered input 和 output 最簡單的 input 方式是使用 fmt 的 Scan 方法 var firstName, lastName string fmt.Scanln(&firstName, &lastName) Scanln 從 standard input 讀取 text,以空白隔開的輸入,直到掃到 newline Scanf, Fscanf, Sscanf 透過 format string 來 parse 參數 Scanf 透過 keyboard 輸入 Sscanf 透過其他 string 輸入 透過 bufio 取得輸入字串 // os.Stdin 滿足 io.Reader inputReader = bufio.NewReader(os.Stdin) fmt.Println("Please enter some input: ") input, err = inputReader.ReadString('\n') // err 是 io.

etcd

install brew install etcd 可在 service list 確認是否正常 brew services list # results etcd started yakushou730 ~/Library/LaunchAgents/homebrew.mxcl.etcd.plist 操作 安裝完後系統會有 etcdctl 的指令可以使用 寫入 etcdctl put foo bar 讀取 etcdctl get foo # result foo bar # 另一個範例 etcdctl get product.rpc --prefix # result product.rpc/7587860940551895303 192.168.0.221:8081 刪除 etcdctl del foo # result 1

sort

Ints 對 int slice 做排序 sort.Ints(arr) IntsAreSorted 回傳 true / false 判斷 int slice 是否已經排序 func IntsAreSorted(arr []int) bool Float64s 對 float slice 做排序 func Float64s(a []float64) Strings 對 string slice 做排序 func Strings(a []string) SearchInts 對 已經排序好的 int arry 做搜尋 回傳 index func SearchInts(a []int, n int) int SearchFloat64s func SearchFloat64s(a []float64, x float64) int // search for float64 SearchStrings func SearchStrings(a []string, x string) int // search for strings

time

基本用法 t := time.Now() fmt.Printf("%02d.%02d.%4d\n", t.Day(), t.Month(), t.Year()) // e.g.: 29.10.2019 Duration 是指兩個時間相減的 nano second (int64) Location 會 mapping 時區 UTC: Universal Coordinated Time Since 回傳過了多久 Since(t Time) Format 把時間轉成特定格式 func (t Time) Format(s string) string 可也以是 time.ANSIC 或 time.RFC822 t := time.Now().UTC() fmt.Println(t.Format("02 Jan 2006 15:04"))// e.g: 29 Oct 2019 11:00 Sub 時間相減出來的時間差 delta := end.Sub(start)

strconv

IntSize 回傳 int 的 size 大小 Itoa int 轉 string strconv.Itoa(i int) string FormatFloat 把 float 轉成 string strconv.FormatFloat(f float64, fmt byte, prec int, bitSize int) string Atoi 字串轉 int strconv.Atoi(s string) (i int, err error) ParseFloat 字串轉 float strconv.ParseFloat(s string, bitSize int) (f float64, err error)