8. golang 基本類型轉換


golang 類型轉換只能顯性轉換 不能自動轉換

 基本數據類型間的轉換

	var x1 int = 2
	var x2 int16
	var x3 int8

	x2 = 200 + x1
	x3 = 200 + x1

.\test.go:3:8: imported and not used: "fmt"

.\test.go:21:5: cannot use 200 + x1 (type int) as type int16 in assignment

.\test.go:22:5: cannot use 200 + x1 (type int) as type int8 in assignment




	var x1 int = 2
	var x2 int16
	var x3 int8
 
         
	x2 = 200 + int16(x1)
	x3 = 200 + int8(x1)


.\test.go:22:11: constant 200 overflows int8

基本數據類型和 string 之間的轉換

1. 使用 fmt.sprintf 函數進行

package main

import "fmt"

func main() {
	var x1 int = 88
	var x2 float32 = 3.45
	var x3 string

	x3 = fmt.Sprintf("this is a int  %d \n", x1)   //注意一定要使用雙引號
	fmt.Print(x3)
	x3 = fmt.Sprintf("this is a  float str %f \n", x2)
	fmt.Print(x3)
}

2. 使用 strconv 函數

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var xx int = 123

	s := strconv.FormatInt(int64(xx), 16)
	fmt.Print(s)

}

 

字符串string 轉換為 基本數據類型

使用strconv 內容

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var xx string = "1232123"
	xxx, _ := strconv.ParseInt(xx, 10, 32)
	fmt.Printf("this xxx is %T  %d", xxx, xxx)
// this xxx is int64  1232123


}

只能返回64位 如果需要32位 要自己在進行一次轉換


注意事項

字符串強行轉換為int 會有以下狀況
package main
 
         
import (
	"fmt"
	"strconv"
)
 
         
func main() {
	var xx string = "hello"
	xxx, _ := strconv.ParseInt(xx, 10, 32)
	fmt.Printf("this xxx is %T  %d", xxx, xxx)
// this xxx is int64  0
 
         
}

  

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM