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

Go语言--语法基础4--基本数据类型--类型转换

Go 是一种强类型的语言,所以如果在赋值的时候两边类型不一致会报错。一个类型的值可以被转换成另一种类型的值。由于 Go 语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明。

强制类型转换语法

使用 type (a) 这种形式来进行强制类型转换,比如:

var a int32 = 10
var b int64 = int64(a)

通过在变量前面添加指定类型,就可以进行强制类型转换。

注意事项

高位转低位的时候,需要注意,会存在精度丢失。比如上述 16 转 8 位的时候,就丢失了:

var n1 int16 = 130
fmt.Println(int8(n1)) // 变成 -126

其他常用类型转换

string 转成 int

int, err := strconv.Atoi(string)

int 转成 string

string := strconv.Itoa(int)

string 转成 int64

int64, err := strconv.ParseInt(string, 10, 64)

int64 转成 string

string := strconv.FormatInt(int64, 10)

float 转 string

func FormatFloat(f float64, fmt byte, prec, bitSize int) string

比如:

package mainimport ("fmt""strconv"
)func main() {num := 250.56str := strconv.FormatFloat(num, 'f', 4, 64)fmt.Printf("type:%T value:%#v\n", str, str)
}

输出:

type:string value:"250.5600"

类型转换的规则

类型转换只能在定义正确的情况下转换成功,例如从一个取值范围较小的类型转换到一个取值范围较大的类型(将 int16 转换为 int32)。

当从一个取值范围较大的类型转换到取值范围较小的类型时(将 int32 转换为 int16 或将 float32 转换为 int),会发生精度丢失(截断)的情况。浮点数在转换为整型时,会将小数部分去掉,只保留整数部分。

相关文章:

  • 4个纯CSS自定义的简单而优雅的滚动条样式
  • 图片压缩与尺寸调整的便捷工具推荐
  • Qt输入控件(QInput Widgets)详解:从基础到实战
  • 【leetcode】队列 + 宽搜,树形结构层序遍历的基础与变化
  • 前端开发,文件在镜像服务器上不存在问题:Downloading binary from...Cannot download...
  • JAVA设计模式——(十)抽象工厂模式(Abstract Factory Pattern)
  • PostgreSQL 的 REINDEX 命令
  • LeetCode 2071 你可以安排的最多任务数目 题解(附带自己的错误做题思路 过了25/49)
  • 个人健康中枢的多元化AI网络革新与精准健康路径探析
  • 【数据结构】励志大厂版·初阶(复习+刷题)排序
  • linux 使用nginx部署ssl证书,将http升级为https
  • CF1000E We Need More Bosses
  • 什么是DGI数据治理框架?
  • 【Python】一直没搞懂生成器是什么。。
  • Fine Structure-Aware Sampling(AAAI 2024)论文笔记和启发
  • Milvus(13):自定义分析器、过滤器
  • Prompt compress 技术探究-LLMLingua
  • 【Linux】深入理解程序地址空间
  • WPF中Behaviors
  • [特殊字符] 人工智能大模型之开源大语言模型汇总(国内外开源项目模型汇总) [特殊字符]
  • 基金会网站建设方案/推广产品
  • 深圳龙华属于哪个区/中国seo网站
  • 肇庆住房建设部网站/全网营销代运营
  • 如何购买网站域名/邯郸网站优化
  • 最成功设计 网站/qq推广链接生成
  • 三星手机网上商城/中国网民博客 seo