strconv
包的FormatBool
函數用於將bool
轉爲string
app
package main import ( "fmt" "strconv" ) func main() { isNew := true isNewStr := strconv.FormatBool(isNew) // message := "Purchased item is " + isNew 會報錯,類型不匹配 message := "Purchased item is " + isNewStr fmt.Println(message) }
strconv
包的FormatInt
、FormatFloat
函數用於將int、float
轉爲string
函數
package main import ( "fmt" "strconv" ) func main() { // Int to String numberInt := int64(20) numberItoS := strconv.FormatInt(numberInt, 8) fmt.Println(numberItoS) // Float to String numberFloat := 177.12211 // FormatFloat函數第二個參數表示格式,例如`e`表示指數格式; // 第三個參數表示精度,當你想要顯示全部內容但又不知道確切位數能夠設爲-1。 numberFtoS := strconv.FormatFloat(numberFloat, 'f', 3, 64) fmt.Println(numberFtoS) }
strconv
包的ParseBool
函數用於將string
轉爲bool
code
package main import ( "fmt" "strconv" ) func main() { isNew := "true" isNewBool, err := strconv.ParseBool(isNew) if err != nil { fmt.Println("failed") } else { if isNewBool { fmt.Println("IsNew") } else { fmt.Println("Not New") } } } // ParseBool函數只接受一、0、t、f、T、F、true、false、True、False、TRUE、FALSE,其餘值均返回error
strconv
包的ParseInt
、ParseFloat
函數用於將string
轉爲int、float
orm
package main import ( "fmt" "strconv" ) func main() { // string to int numberI := "2" numberInt, err := strconv.ParseInt(numberI, 10, 32) if err != nil { fmt.Println("Error happened") } else { if numberInt == 2 { fmt.Println("Success") } } // string to float numberF := "2.2" numberFloat, err := strconv.ParseFloat(numberF, 64) if err != nil { fmt.Println("Error happened") } else { if numberFloat == 2.2 { fmt.Println("Success") } } }
在Go中,string
的底層就是[]byte
,因此之間的轉換很簡。string
package main import "fmt" func main() { helloWorld := "Hello, World" helloWorldByte := []byte{72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100} fmt.Println(string(helloWorldByte), []byte(helloWorld)) // fmt.Printf("%q", string(helloWorldByte)) }
string
用Format
string
轉其它用Parse
string
和[]byte
直接轉