1. 程式人生 > 其它 >GO語言基本資料型別和string型別的轉換

GO語言基本資料型別和string型別的轉換

技術標籤:字串golang後端

GO語言基本資料型別和string型別的轉換

1.基本資料型別轉string型別

fmt包中的Sprintf方法

格式:fmt.Sprintf(“格式控制符”, 變數名)

package main
import(
	"fmt"
)

func main()  {
	//格式控制符為要轉換的資料的型別
	var a int = 123
	var b float32 = 123
	var c bool = true
	var d string = "hello"
	var e byte = 'm'
	str1 := fmt.
Sprintf("%d", a) str2 := fmt.Sprintf("%f", b) str3 := fmt.Sprintf("%t", c) str4 := fmt.Sprintf("%s", d) str5 := fmt.Sprintf("%c", e) //下面進行輸出 fmt.Printf("str1 = %v 型別:%T \n", str1, str1) fmt.Printf("str2 = %v 型別:%T \n", str2,
str2) fmt.Printf("str3 = %v 型別:%T \n", str3, str3) fmt.Printf("str4 = %v 型別:%T \n", str4, str4) fmt.Printf("str5 = %v 型別:%T \n", str5, str5) }

輸出結果:在這裡插入圖片描述

strconv包中的函式

strconv包中有幾個函式用於基本資料型別到string型別的轉換:FormatInt 、FormatUint、FormatFloat、FormatBool

package main
import
( "fmt" "strconv" ) func main() { //格式控制符為要轉換的資料的型別 var a int64 = 123 var b float64 = 123 var c bool = true var d int = 123 //var e byte = 'm' // str1 := fmt.Sprintf("%d", a) // str2 := fmt.Sprintf("%f", b) // str3 := fmt.Sprintf("%t", c) // str4 := fmt.Sprintf("%s", d) // str5 := fmt.Sprintf("%c", e) str1 := strconv.FormatInt(a , 10) //10表示10進位制,這個函式用於int64轉string //FormatFloat函式用法:strconv.FormatFloat(變數名,格式,精度,位元位) str2 := strconv.FormatFloat(b, 'f', 7, 64) //格式指的是進位制格式,這裡的'f'就是十進位制格式,相應的還有'b':二進位制格式; 'e'或'E':十進位制指數; //精度為7就是保留小數點後七位 //位元位為64意思是float64這種型別,相應的還有32,意為float32型別 str3 := strconv.FormatBool(c) // str4 := strconv.FormatByte(e) !!!!這是錯的!!!沒有FormatByte這個函式 str4 := strconv.Itoa(d) //這個函式也有將int型轉化為string的功能 //下面進行輸出 fmt.Printf("str1 = %v 型別:%T \n", str1, str1) fmt.Printf("str2 = %v 型別:%T \n", str2, str2) fmt.Printf("str3 = %v 型別:%T \n", str3, str3) fmt.Printf("str4 = %v 型別:%T \n", str4, str4) }

輸出結果:在這裡插入圖片描述

2.string轉基本資料型別

同樣,strconv中也有將string轉化為基本資料型別的函式:ParseInt、ParseUint、ParseFloat、ParseBool

package main

import(
	"fmt"
	"strconv"
)
func main()  {
	var str1 string = "123"
	var str2 string = "123.123"
	var str3 string = "true"
    //以下的函式返回值位int64位或float64位,_表示啞元變數,用於接收函式的一個返回值
	//ParseInt用法:ParseInt(變數名,進位制,位元位)
	a,_ := strconv.ParseInt(str1, 10, 64)  // 10表示a為十進位制整數,64表示a為int64
	//ParseInt用法:ParseFloat(變數名,位元位)
	b,_ := strconv.ParseFloat(str2, 64) //64意為float64位
	//ParseBool(變數名)
	c,_ := strconv.ParseBool(str3)

	fmt.Printf("a = %v  型別為%T \n", a, a)
	fmt.Printf("b = %v  型別為%T \n", b, b)
	fmt.Printf("c = %v  型別為%T \n", c, c)
}

intf(“a = %v 型別為%T \n”, a, a)
fmt.Printf(“b = %v 型別為%T \n”, b, b)
fmt.Printf(“c = %v 型別為%T \n”, c, c)
}


輸出結果:![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20210202205151466.png#pic_center)