substring 和 substr 其實都是字串擷取的 function, 但這兩個的差異是什麼呢? substring 是設定 "開始" 和 "結束" (字串內容並不包含最後一個字)的位子,並擷取字串,而 substr 是設定 "開始位子" 和 "要擷取的長度",下面我們用一個實際的範例來展示

假設我們有一個字串 "Hello World" 我們想要取的 lo, W 的字段,我們可以怎麼做

  1. 用 substring 的方式,設定想要擷取字串的 "開始" 和 "結束" 位址,我們可以這樣寫 (結束位子一定要大於開始位子)
package main

import "fmt"

func main() {
	str := "Hello, World"
	result := str[3:8] // 開始位子是 3, 結束位子是 8
	fmt.Println(result) //lo, W
}
  1. 用 substr 的方式,設定想要擷取字串的 "開始" 和 "長度" 位址,但因為 golang 其實並沒有提供 substr 的function, 我們必須用 substring 的方式來達到我們的需求,所以原本結束位子改成 "開始" + "長度",只不過換一種思考方式
package main

import "fmt"

func main() {
	str := "Hello, World"
	result := str[3:3+5] // 開始位子是 3, 長度是4, 
	fmt.Println(result) //lo, W
}