go int64转string_go基本数据类型

38e2f769600c581e6690a970d9e884fd.png

介绍

go语言中的数据类型,常见的有整形、浮点型、布尔型、字符串,除此外还有数组、切片、结构体、函数、map、通道等。本篇记录基本的数据类型。

整形

整型分无符号整型和有符号整型,无符号整型为uint8、uint16、uint32、uint64,有符号整型为int8、int16、int32、int64。无符号的就是正数、有符号的加了符号,包括了负数。

例如无符号uint8的取值范围是0-255,而有符号的int8取值范围就是-128-127。

在go语言中整型的长度和其他语言类似,只不过是用8、16、32、64来表示的,例如uint8就相当于byte型,int16就相当于short型,int64就相当于long型。

当然在go中也有int型和uint型,它们取值根据操作系统位数来定,例如int在32位系统上就是int32,在64位系统上就是int64.

整型进制间的转换

go中可以使用fmt来表达不同的进制,十进制为%d,二进制为%b,八进制为%o,十六进制为%x,示例代码如下。

package mainimport "fmt"func main(){  num := 10  fmt.Printf("%d \n", num) // 十进制  fmt.Printf("%b \n", num) // 二进制  fmt.Printf("%o \n", num) // 八进制  fmt.Printf("%x \n", num) // 十六进制}

浮点型

go中浮点型有两种,float32和float64,定义一个浮点数默认是float64,如果想定义float32,可进行强制转换。使用fmt输出时使用%f即可,%T用来查看变量类型,示例代码如下。

package mainimport "fmt"func main(){  num := 123.456  num1 := float32(123.456)  fmt.Printf("%T \n", num) // float64  fmt.Printf("%f \n", num)  fmt.Printf("%T \n", num1) //float32  fmt.Printf("%f \n", num1 )}

布尔值

go中布尔值有两种true和false,默认为false。示例代码如下。

package mainimport "fmt"var name boolfunc main(){  name1 := true  fmt.Printf("%T \n",name)  fmt.Println(name) // false  fmt.Printf("%T \n",name1)  fmt.Println(name1) // true}

字符串

go中字符串使用双引号包裹,单引号包裹不是字符串,而是字符。go的字符串默认使用的是utf-8,对中文支持较好。示例代码如下。

package mainimport "fmt"func main(){  name := "afa"  name1 := 'a'  fmt.Printf("%T \n",name) // string  fmt.Println(name) // afa  fmt.Printf("%T \n",name1) // int32  fmt.Println(name1) // 97}

上面例子字符a的类型为int32,输出为97,输出的是a字符的ascii码。

在go语言中如果要把字符串按原因输出,例如回车,缩进等格式,可以使用反引号,示例代码如下。

package mainimport "fmt"var name = `dear name:  hello,this is ...`func main(){  fmt.Printf("%T \n",name) // string  fmt.Print(name) // 按格式输出}

字符串常用函数

常用函数说明及用法见如下示例。

package mainimport (  "fmt"  "strings")var name = "afa gong fang shi yan shi"func main(){  // len函数输出字符串长度  fmt.Println(len(name))  // 使用+或者fmt.Sprintf进行字符串拼接  fmt.Println(name + " is good !")  fmt.Println(fmt.Sprintf("%v %v", name, "is good !")) // %v可用来接收所有类型的值  // 使用strings.Split切割字符  fmt.Println(strings.Split(name, " ")) // 以空格为切割符来切割name变量,返回一个切片  // 使用strings.Contains来判断是否包含  fmt.Println(strings.Contains(name, "afa")) // true  // 使用strings.HasPrefix判断字符串前缀  fmt.Println(strings.HasPrefix(name, "a")) //true  // 使用strings.HasSuffix判断字符串后缀  fmt.Println(strings.HasSuffix(name, "a")) //false  // 使用strings.Index判断字符第一次出现的位置  fmt.Println(strings.Index(name, "f")) // 1  // 使用strings.LastIndex判断字符最后一次出现的位置  fmt.Println(strings.LastIndex(name, "a")) // 19  // 使用strings.Join连接字符  fmt.Println(strings.Join([]string{"afa", "gong", "fang", "shi", "yan", "shi"}, " "))}

字符

go中字符有两种,一种是uint8类型,也叫byte类型,代表的是ascii码的字符。还有一种是rune类型,代表的是utf-8字符。

当循环遍历一个字符串时,则是uint8类型,该类型对中文、特殊符号等支持不友好,如下实例。

b7a470544e577f58d6c058cc852bfce0.png

而rune类型对中文、特殊符号等支持友好,rune相当于是int32类型的包装,使用rune遍历一个字符串,返回的是索引号和字符内容,示例如下。

1a90024c078e8e6e8f84e503ac1df03b.png

字符串是不支持修改的,但我们可以利用byte类型和rune类型进行这种处理,只需要把字符串转换为byte或rune类型,然后替换字符,最后再转回字符串就可以了,示例代码如下。

b6fab0d3a92527057274e89e4ee616d8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值