文章目录

  • 一、类型转换
  • 二、什么时候需要强制类型转换?
  • 三、其他实例
  • 四、go 不支持隐式转换类型
  • 参考链接

一、类型转换

类型转换用于将一种数据类型的变量转换为另外一种类型的变量。

Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。

Go 语言强制类型转换的基本语法如下:

type(expression)

type 表示要转换的类型。expression 为表达式,表达式包括变量、复杂算子和函数返回值等。


二、什么时候需要强制类型转换?

比如计算直角三角形的斜边长时使用 math 包的 Sqrt() 函数,该函数接收的是 float64 类型的参数,而变量 a 和 b 都是 int 类型的,这个时候就需要将 a 和 b 强制类型转换为 float64 类型。

func sqrtDemo() {var a, b = 3, 4var c int// math.Sqrt()接收的参数是float64类型,需要强制转换c = int(math.Sqrt(float64(a*a + b*b)))fmt.Println(c)
}

三、其他实例

以下实例中将整型转化为浮点型,并计算结果,将结果赋值给浮点型变量:

package mainimport "fmt"func main() {var sum int = 17var count int = 5var mean float32mean = float32(sum) / float32(count)fmt.Printf("mean 的值为: %f\n", mean)
}

输出结果:

mean 的值为: 3.400000

四、go 不支持隐式转换类型

package main
import "fmt"func main() {  var a int64 = 3var b int32b = afmt.Printf("b 为 : %d", b)
}

报错:

.\main.go:8:4: cannot use a (type int64) as type int32 in assignment

但是如果改成 b = int32(a) 就不会报错了:

package mainimport "fmt"func main() {var a int64 = 3var b int32b = int32(a)fmt.Printf("b 为 : %d", b)
}

输出结果:

b 为 : 3

参考链接

  1. Go 语言类型转换

【Go】Go 语言的类型转换相关推荐

  1. R语言数据格式转换函数、数据类型判断函数(numeric、character、vector、matrix、data.frame、factor、logical)、R语言数据格式类型转换

    R语言数据格式转换函数.数据类型判断函数(numeric数值.character字符串.vector向量.matrix矩阵.data.frame数据表.factor因子.logical逻辑).R语言数 ...

  2. C++ 类型转换 :C语言的类型转换、C++的四种强制类型转换、explicit

    文章目录 C语言中的类型转换 隐式类型转换 显式类型转换 C++ 强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast explici ...

  3. go语言基础-类型转换及运算

    类型转换 整型之间的转换 package mainimport ("fmt""reflect" )func main() {//整型之间的转换var a int ...

  4. 编程语言专题《开发篇,C语言强制类型转换本身值不发生改变》

    C语言强制类型转换本身值是不会发生改变的 例如:flaot a = 12.34 ,int b = ( int ) a ,将浮点类型的a强制转换成int类型,a本身并没有发生改变,仍然是那个float类 ...

  5. JAVA语言强制类型转换要求

    JAVA语言强制类型转换要求 数据类型具有高低性的 顺序由低到高为 byte->short->char->int->long->float->double 1.由低 ...

  6. c语言常量类型转换,c语言基础教程常量变量和类型转换,免费版.doc

    c语言基础教程常量变量和类型转换,免费版 第二章??????常量变量和类型转换2.1.1数字常量??? 数字常量包括整型常量和浮点型常量,浮点型常量又称实数.????1.整型常量???? HYPERL ...

  7. 【C++ 语言】类型转换 ( 转换操作符 | const_cast | static_cast | dynamic_cast | reinterpret_cast | 字符串转换 )

    文章目录 I . const_cast 转换操作符 II . static_cast 转换操作符 III . dynamic_cast 转换操作符 IV . reinterpret_cast 转换操作 ...

  8. c语言运算符类型转换,C语言中强制类型转换运算符的独特作用

    C语言中强制类型转换运算符的独特作用 在C语言中有一个强制类型转换运算符,它为C语言中的数据类型转换带来 (本文共2页) 阅读全文>> 在进行C++类的设计时,我们常常需要为类对象设计运算 ...

  9. 小白适用的C语言数据类型转换及转换规则

    点击上方蓝字关注我,了解更多咨询 1.不同类型数据间的混合运算与类型转换: ①若参与运算量的类型不同,则先转换成同一类型,然后进行运算 ②转换按数据长度增加的方向进行,以保证精度不降低.如int型和l ...

最新文章

  1. 【笔记】spring的注解回顾,springboot-restful项目结构介绍 springboot-freemarker ⼯程配置详解
  2. windows 路由设置问题
  3. jquery.cookie.js 使用小结
  4. 人工智能——图像分析第二期练习
  5. Java EE 8 MVC:使用表单参数
  6. linux is not unix由来,一些奇怪的 unix 指令名字的由来(转)
  7. Python中的split()和rsplit()的使用
  8. mysql 中的 engine 存储引擎
  9. ES插件elasticsearch-mapper-attachments 2.3.4及各个版本正确下载地址
  10. 还不懂数据库模糊查询?总结7种窍门技巧!
  11. android netcfg命令,Android netcfg
  12. 迅雷再换赛道锁定云计算 盈利能力待考
  13. 刀塔OMG塔防1.23单机版使用方法
  14. 计算机硕士非全日制的有双证吗,双证非全日制太坑了?非全日制研究生有哪些优势?...
  15. Linux 网络协议栈开发基础篇(十)—— 组播(Multicast)基础
  16. 暑期练习web25:web code(i春秋)index.php文件包含、base64图片加密
  17. 香港玉湖集团亮相进博会——展现实力风采,建立共赢平台
  18. python键盘监听模块大全_python监听、操作键盘鼠标库pynput详细教程
  19. 计算机网络最突出的优点是a提高可靠性,2013年计算机一级B考试模拟试题十九及答案解析...
  20. 【淘宝-天猫超市飞天茅台1499抢购】Python 脚本的完整安装、使用教程与解决方案

热门文章

  1. 用C语言解决迷宫问题
  2. 硬盘安装+游戏功能+虚拟机XP-80分钟打造娱乐型ubuntu7.10[转]
  3. linux dhclient源码 多进程,Linux日志中出现大量dhclient mesage浅析,
  4. 2021-技能大赛-信息安全管理与评估-DCN 设备总结 (中)-任务二-设备安全配置篇(2)
  5. postgresql数据库中使用使用UUID
  6. mysql的uuid获取
  7. MATLAB可视化+多图共用corlorbar设置+axes
  8. js 数组 字符串基础方法
  9. 网络空间问题之缺乏动态评估、安全开发、非对称攻防以及可信空间构造能力的问题
  10. FPGA实现MPEG2视频压缩 提供工程源码和技术支持