从零开始学Go之基本(三):类型转换与常量

类型转换:

 

简单类型转换:(一般是数字之间的转换)

表达式:转换类型(转换值)

func main() {
 var i = 42
 f := float64(i)
 var u = uint(f)
 var p = string(i)//会改变值
 fmt.Printf("i type=%T\n",i)
 fmt.Printf("f type=%T\n",f)
 fmt.Printf("u type=%T\n",u)
 fmt.Printf("p type=%T\n",p)
 fmt.Printf("p value=%v\n",p)
}

运行结果:

i type=int

f type=float64

u type=uint

p type=string

p value=*

可以发现p的值已经变成42对应的ASCII码

 

strconv包转换:

int转换为字符串:strconv.Itoa()

println("astring" + strconv.Itoa(666)) // 可以直接转换,输出为astring666

string转换为int:strconv.Atoi()

func Atoi(s string) (int, error)

由于string可能无法转换为int,所以这个函数有两个返回值:第一个返回值是转换成int的值,第二个返回值判断是否转换成功

 

strconv包的Parse类:

Parse类函数用于转换字符串为给定类型的值(string->x):strconv.ParseBool()、strconv.ParseFloat()、strconv.ParseInt()、strconv.ParseUint()

func ParseBool(s string) (i bool, err error)//真值:1, t, T, TRUE, true, True;假值:0, f, F, FALSE, false, False.

func ParseFloat(s string, 64) (i float64, err error)//只支持64位

func ParseInt(s string, base int, bitSize int) (i int64, err error)//base:按几进制转换,bitSize:转换的位数(8,16,32,64)

func ParseUint(s string, base int, bitSize int) (uint64, error)//base:按几进制转换,bitSize:转换的位数(8,16,32,64)

同string转int一样,由于有无法转换的可能性,所以都有两个返回值,第一个返回值是转换成对应类型的值,第二个返回值判断是否转换成功

 

strconv包的Format类:

Format类函数用于给定类型的值转换为字符串(x->string):strconv.FormatBool()、strconv.FormatFloat()、strconv.FormatInt()、strconv.FormatUint()

func FormatBool(i bool) string

func FormatFloat(i float64, fmt byte, prec, bitSize int) string//fmt:格式标记(b、e、E、f、g、G),prec:代表输出的精度小数点后的位数,如果是<0的值,则返回最少的位数来表示该数,如果是大于0的则返回对应位数的值bitSize:转换的位数(32,64)

/*
格式标记:
'b' (-ddddp±ddd,二进制指数) 'e' (-d.dddde±dd,十进制指数) 'E' (-d.ddddE±dd,十进制指数) 'f' (-ddd.dddd,没有指数) 'g' ('e':大指数,'f':其它情况) 'G' ('E':大指数,'f':其它情况)
*/ func FormatInt(i int64,
base int) string//base:按几进制转换 func FormatUint(i uint64, base int) string//base:按几进制转换

 

strconv包的Append类:(切片slice在后面讲)

AppendTP类函数跟Format类一样,只是转换成字符串后再append到一个slice中:strconv.AppendBool()、strconv.AppendFloat()、strconv.AppendInt()、strconv.AppendUint()。、

func AppendBool(i []bool) string

func AppendtFloat(i []float64, fmt byte, prec, bitSize int) string

func AppendInt(i []int64, base int) string//base:按几进制转换

func AppendUint(i []uint64, base int) string//base:按几进制转换

 

常量:

常量声明与初始化跟变量相似,只是var变成了const,而且无法使用短变量

const 变量名 变量类型 = 变量值

const a string = "test"
posted @ 2019-06-23 19:14  VingB2by  阅读(226)  评论(0编辑  收藏  举报