go基础之strconv包的使用

strconv包实现了基本类型与字符串之间的转换

Atoi()和Itoa()函数的使用

package main

import (
	"fmt"
	"strconv"
)

//strconv包的使用

func main() {
    
    
	var strr string
	strr = "123456"
	//将字符串类型的整数转换为int
	v, err := strconv.Atoi(strr)
	if err != nil {
    
    
		fmt.Println(err)
		return
	}
	fmt.Printf("%T,%v\n", v, v)

	//将int转换为字符串
	str := strconv.Itoa(v)
	fmt.Printf("%T,%v\n", str, str)
}

Parse类函数用于转换字符串为给定类型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。

package main

import (
	"fmt"
	"strconv"
)

//strconv包的使用

func main() {
    
    
	var str1 string
	str1 = "True"
	//返回字符串表示的bool值,它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE;否则返回错误。
	v, err1 := strconv.ParseBool(str1)
	if err1 != nil {
    
    
		fmt.Printf("%v\n", err1)
	}
	fmt.Printf("%v\n", v)

	var str2 string
	str2 = "123456"
	// 返回字符串表示的整数值,接受正负号。
	// 参数1:要处理的string
	// 参数2:指定进制(2到36),如果base为0,则会从字符串前置判断,”0x”是16进制,”0”是8进制,否则是10进制;
	// 参数3:指定结果必须能无溢出赋值的整数类型,0、8、16、32、64 分别代表 int、int8、int16、int32、int64;
	// 返回的err是*NumErr类型的,如果语法有误,err.Error = ErrSyntax;如果结果超出类型范围err.Error = ErrRange
	vin, err2 := strconv.ParseInt(str2, 10, 64)
	if err2 != nil {
    
    
		fmt.Printf("%v\n", err2)
		return
	}
	fmt.Printf("%v\n", vin)

	//ParseUint类似ParseInt但不接受正负号,用于无符号整型。
	vin1, err3 := strconv.ParseUint(str2, 10, 64)
	if err3 != nil {
    
    
		fmt.Printf("%v\n", err3)
		return
	}
	fmt.Printf("%v\n", vin1)

	var str3 string
	str3 = "12.123456"
	// 	解析一个表示浮点数的字符串并返回其值。
	// 	如果s合乎语法规则,函数会返回最为接近s表示值的一个浮点数(使用IEEE754规范舍入)。
	// 	bitSize指定了期望的接收类型,32是float32(返回值可以不改变精确值的赋值给float32),64是float64;
	// 	返回值err是*NumErr类型的,语法有误的,err.Error=ErrSyntax;结果超出表示范围的,返回值f为±Inf,err.Error= ErrRange。
	float, err := strconv.ParseFloat(str3, 64)
	if err != nil {
    
    
		fmt.Printf("%v\n", err)
		return
	}
	fmt.Printf("%v\n", float)
}

Format系列函数实现了将给定类型数据格式化为string类型数据的功能。

package main

import (
	"fmt"
	"strconv"
)

//strconv包的使用

func main() {
    
    
	var bo bool
	bo = true
	// 根据参数的值返回”true”或”false”。
	str1 := strconv.FormatBool(bo)
	fmt.Printf("%T,%v\n", str1, str1)

	var intt int64
	intt = 123
	//返回i的base进制的字符串表示。base 必须在2到36之间,结果中会使用小写字母’a’到’z’表示大于10的数字
	str2 := strconv.FormatInt(intt, 10)
	fmt.Printf("%T,%v\n", str2, str2)

	//是FormatInt的无符号整数版本。
	var i uint64
	i = 123
	str3 := strconv.FormatUint(i, 10)
	fmt.Printf("%T,%v\n", str3, str3)

	var f float64
	f = 12.126456
	// func FormatFloat(f float64, fmt byte, prec, bitSize int) string
	// 函数将浮点数表示为字符串并返回。
	// bitSize表示f的来源类型(32:float32、64:float64),会据此进行舍入。
	// fmt表示格式:’f’(-ddd.dddd)、’b’(-ddddp±ddd,指数为二进制)、’e’(-d.dddde±dd,十进制指数)、’E’(-d.ddddE±dd,十进制指数)、’g’(指数很大时用’e’格式,否则’f’格式)、’G’(指数很大时用’E’格式,否则’f’格式)。
	// prec控制精度(排除指数部分):对’f’、’e’、’E’,它表示小数点后的数字个数;对’g’、’G’,它控制总的数字个数。如果prec 为-1,则代表使用最少数量的、但又必需的数字来表示f。
	str4 := strconv.FormatFloat(f, 'E', -1, 64)
	fmt.Printf("%T,%v\n", str4, str4)
}

猜你喜欢

转载自blog.csdn.net/weixin_44865158/article/details/114996568