Go---基本数据类型

    在go中,数据类型都有一个默认值,当没有赋值时,就会保留默认值,在go中,默认值又叫零值。

基本数据类型默认值

基本数据类型的转换

 Go在不同类型的变量之间赋值时需要显式转换。也就是说Golang中数据类型不能自动转换
基本语法
表达式 T(v) 将值V 转换为类型

T : 就是数据类型、比如int32. int64. float32等等

v: 就是需要转换的变帚

var i int32 =100

//i ===> float

var j float32 = float32(i)

var k int8 = int8(i)

fmt.Printf("i=%v j=%v k=%v",i,j,k)

细节说明
1) Go中,数据类型的转换可以是从表示范围小-->表示范围大,也可以范围大--->范围小

2) 被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!
3) 在转换中,比如将int64转成int8 【-128--127】,编译时不会报错,只是转换的结果是
按溢出处理,和我们希望的结果不—样。

import (

     "fmt"  

    _ "unsafe"  //如果我们没有使用到一个包,但是有想去掉,前面加一个 _表示忽略

)

Golang标准库文档

Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国

基本数据类型和string的转换

在程序开发中,经常将基本数据类型转成string或者将string 转成基本数据类型。

方式1: mt.Sprintf("%参数",表达式)

1)参数需要和表达式的数据类型相匹配
2)fmt.Sprintf()会返回转换后的字符串

var num1 int = 99

var num2 float64 = 16.44

var flag bool = true

 var gchar byte = 'o'

var str string //空的string

//使用第一种方式来转换 fmt .sprintf方法

str = fmt.Sprintf("%d",num1)

fmt.Printf(" str type %T str=%v \n",str,str )

str = fmt.Sprintf("%f",num2)

fmt.Printf(" str type %T str=%v \n",str,str )

str = fmt.Sprintf("%t",flag)

fmt.Printf(" str type %T str=%v \n",str,str )

str = fmt.Sprintf("%c",gchar)

fmt.Printf(" str type %T str=%v \n",str,str )

方式2: 使用strconv包的函数

//第二种方式 strconv

var num3 int = 75

var num4 float64 = 26.44

var flag2 bool = false

//返回i的base进制的字符串表示。base 必须在2到36之间,结果中会使用小写字母'a'到'z'表示大于10的数字

str = strconv.FormatInt(int64(num3),10)

fmt.Printf(" str type %T str=%v \n",str,str )

//说明:'f' :格式  9: 表示小数位保留10位  64:表示这个小数是float64

str = strconv.FormatFloat(num4,'f',9,64)

fmt.Printf(" str type %T str=%v \n",str,str )

str = strconv.FormatBool(flag2)

fmt.Printf(" str type %T str=%v \n",str,str )

//int ===> String

var  str string

var num5 int64 = 376

str = strconv.Itoa(int(num5))

fmt.Printf(" str type %T str=%v \n",str,str )

string类型转基本数据类型

使用strconv包的函数

var str string = "false"

var b bool

//说明

// 1.strconv.ParseBool(str)函数会返回两个值(value bool, err error)

// 2.因为我只想获取到value bool ,不想获取err 所以我使用 _忽略

b , _ =strconv.ParseBool(str)

fmt.Printf(" b type %T b=%v \n",b,b)

var str2 string = "1473695"

var n1 int64

var n2 int

n1 , _ =strconv.ParseInt(str2,10,64)

n2 = int(n1)

fmt.Printf(" n1 type %T n1=%v \n",n1,n1)

fmt.Printf(" n2 type %T n2=%v \n",n2,n2)

var str3 string = "48.34"

var f1 float64

f1 , _ = strconv.ParseFloat(str3,64)

fmt.Printf(" f1 type %T f1=%v \n",f1,f1)

注意事项
在将string类型转成基本数据类型时,要确保string类型能够转成有效的数据,比如我们可以把"123",转成一个整数,但是不能把“hey"转成一个整数,如果这样做,Golang直接将其转成0

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值