Go基礎編程實踐(二)—— 類型轉換

bool to string

strconv包的FormatBool函數用於將bool轉爲stringapp

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)
}

int/float to string

strconv包的FormatIntFormatFloat函數用於將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)
}

string to bool

strconv包的ParseBool函數用於將string轉爲boolcode

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

string to int/float

strconv包的ParseIntParseFloat函數用於將string轉爲int、floatorm

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")
        }
    }
}

[]byte to string

在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))
}

總結

  • 轉成stringFormat
  • string轉其它用Parse
  • string[]byte直接轉
相關文章
相關標籤/搜索