当前位置: 首页 > news >正文

Go 数字类型

一、数字类型

1、Golang 数据类型介绍
  1. Go 语言中数据类型分为:基本数据类型和复合数据类型
  2. 基本数据类型有:
    1. 整型、浮点型、布尔型、字符串
  3. 复合数据类型有:
    1. 数组、切片、结构体、函数、map、通道(channel)、接口
2、整型分为两大类
  • 有符合整型按长度分为:int8、int16、int32、int64
  • 对应的无符合整型:uint8、uint16、uint32、uint64

  • 关于字节:
    • 字节也叫 Byte,是计算机数据的基本存储单位。8bit(位)=1byte(字节)1024byte(字节)=1kb
    • 1024KB=1MB 1024MB=1GB
    • 1024GB=1TB。在电脑里一个中文字是占两个字节的
3、unsafe.Sizeof
  • unsafe.Sizeof(n1)是 unsafe 包的一个函数。可以返回n1 变量占用的字节数
package main
import ("fmt""unsafe"
)
func main() {var a int8 = 124fmt.Printf("%T\n", a)       // int8fmt.Println(unsafe.Sizeof(a))      // 1 (表示占用1个字节,也就是8 byte)
}
4、int 不同长度直接的转换 
package  mainimport ("fmt"
)func main(){var num1 int8num1 := 127num2 := int32(num1)    //讲 num1 类型转换程 int32 并赋值给 num1fmt.Printf("值:%v 类型%T",num2,num2) //值:127 类型 int32
}
5、浮点型
  • Go语言支持两种浮点型数:float32和float64
package mainimport("fmt""math"
)func main(){fmt.Printf("%f\n",math.Pi)    //3.141593(默认保留6位小数)fmt.Printf("%.2f\n",math.Pi)    //3.14(保留2位小数)
}
6.reflect.TypeOf查看数据类型
package mainimport("fmt""reflect"
)func main(){c := 10fmt.PrintIn(reflect.TypeOf(c))    //int
}

二、int互转

1、int常用转换
package mainimport("fmt""strconv"
)func main(){//string到intintV,_ := strcomv.Atoi("123456")// string到int64int64V,_ := strconv.ParseInt("123456",10,64)//int到stringstrS := strconv.Itoa(123)//int64到stringvar tmp int64 =123str64S:=strconv.FormatInt(tmp,10)fmt.Printf("%T--%T--%T--%T",intV,int64V,strS,str64S)//int--int64--string-string
}
2、int8转int16
package  mainimport "fmt"func main(){var a int8 = 20var b int16 =40var c int16(a) + b    //要转换成形同类型才能运行fmt.Printf("值:%V--类型%T",c,c)     //值:60--类型 int16}
3、int16转float32
package mainimport "fmt"func main(){var a float32 =3.2var b int16 =6var c = a + float32(b)fmt.Printf("值:%V--类型%T",c,c)    //值:9.2--类型float32}
4、math.Sqrt强转
package mainimport("fmt""math"
)func main(){var a,b =3,4var c int//math.Sqrt()接收的参数是float64类型,需要强制转换c = int(math.Sqrt(float64(a*a+b*b)))fmt.PrintIn(c)    // 5
}

三、int与str转换

1、int与str转换
package mainimport("fmt""strconv"
)func main(){//2.1 int64转strvar num2 int64 = 123456str2 := strconv.FormatInt(num2,10)fmt.Printf("%V--%T\n",str2,str2)    //12345--string//2.2 str转int64v1,_ := strconv.ParseFloat(str2,64)fmt.Printf("%v---%T\n",v1,v1)      // 123456---float64
}
2、str与int64转换
package main
import ("fmt""strconv"
)func main() {//1.1 int转stingnum1 := 123456str1 := strconv.Itoa(num1)fmt.Printf("%v---%T \n",str1,str1)  // 123456---string// 1.2 sting转int_int, err := strconv.Atoi(str1)fmt.Println(_int,err)  // 123456 <nil>fmt.Printf("%v---%T\n",_int,_int)   // 123456---int//2.1 int64转strvar num2 int64 = 123456str2 := strconv.FormatInt(num2, 10)fmt.Printf("%v---%T \n",str2,str2)  // 123456---string//2.2 str转int64v1, _ := strconv.ParseFloat(str2, 64)fmt.Printf("%v---%T\n",v1,v1)      // 123456---float64
}

四、布尔值

  • Go 语言中以 bool 类型进行声明布尔型数据,布尔型数据只有 true(真)和 false(假)两个值。

  • 注意:

    • 布尔类型变量的默认值为 false。

    • Go 语言中不允许将整型强制转换为布尔型

    • 布尔型无法参与数值运算,也无法与其他类型进行转换

package main
import ("fmt""unsafe"
)
func main() {var b = truefmt.Println(b, "占用字节:", unsafe.Sizeof(b))  // true 占用字节: 1
}

http://www.lryc.cn/news/245758.html

相关文章:

  • 时间序列预测 — Informer实现多变量负荷预测(PyTorch)
  • 2023年金融信创行业研究报告
  • 51单片机按键控制LED灯亮灭的N个玩法
  • 推荐6款本周 yyds 的开源项目
  • 【Git】git 更换远程仓库地址三种方法总结分享
  • springboot 返回problem+json
  • AI动画制作 StableDiffusion
  • 【开源】基于Vue和SpringBoot的木马文件检测系统
  • 5 动态规划解分割等和子串
  • file_get_contents() 函数详解与使用
  • 某医生用 ChatGPT 在 4 个月内狂写 16 篇论文,其中 5 篇已发表,揭密ChatGPT进行论文润色与改写的秘籍
  • 进程等待讲解
  • MySQL Binlog深度解析:进阶应用与实战技巧【进阶应用】
  • openpnp - 给底部相机加防尘罩
  • mac mysql连接中断重新启动办法
  • 【Vue3】解决Vue打包后上传服务器 资源路径加载错误
  • u-popup组件在UniApp中的讲解
  • drool 7 multiThread 测试
  • 【网安AIGC专题】46篇前沿代码大模型论文、24篇论文阅读笔记汇总
  • 如何在Simulink中使用syms?换个思路解决报错:Function ‘syms‘ not supported for code generation.
  • 论文导读 | 10月专题内容精选:人的预测
  • 深度学习18
  • Mysql数据库 18.Mysql SQL优化
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • 大数据-之LibrA数据库系统告警处理(ALM-37006 Coordinator进程异常)
  • python 列表的操作
  • Vue快速实践总结 · 上篇
  • 外汇天眼:香港监管机构对AMTD Global Markets Limited启动法律诉讼
  • OpenCV入门教程
  • 84基于matlab的数字图像处理