Go学习笔记之数据类型转换

Go数据类型转换

整型与浮点型转换

package mainimport ("fmt""strconv"
)func main() {// 类型转换建议是从低位的类型转换到高位的类型,比如从int转换到float64,从float32转换到float64d := 10f := 3.14fmt.Println(float64(d) + f)}

其他类转换成字符串

	// 其他类型转换成字符串类型var i int = 10       // int类型var b bool = true    // bool类型var l float64 = 3.14 // float64类型var a byte = 'a'     // byte类型// 1. 使用Sprintf函数将其他类型转换成字符串类型str_i := fmt.Sprintf("%d", i)                      //Sprintf函数将其他类型转换成字符串类型,%d是int类型的格式str_b := fmt.Sprintf("%t", b)                      //Sprintf函数将其他类型转换成字符串类型,%t是bool类型的格式str_f := fmt.Sprintf("%f", l)                      //Sprintf函数将其他类型转换成字符串类型,%f是float64类型的格式str_C := fmt.Sprintf("%c", a)                      //Sprintf函数将其他类型转换成字符串类型,%c是byte类型的格式fmt.Println("使用Sprintf函数将其他类型转换成字符串类型")            // 使用Sprintf函数将其他类型转换成字符串类型fmt.Printf("str_i类型 %T str_i值 %v\n", str_i, str_i) // string 10fmt.Printf("str_b类型 %T str_b值 %v\n", str_b, str_b) // string truefmt.Printf("str_f类型 %T str_f值 %v\n", str_f, str_f) // string 3.140000fmt.Printf("str_C类型 %T str_C值 %v\n", str_C, str_C) // string afmt.Println("----------------------------------------------------")// 2. 使用strconv包中的函数将其他类型转换成字符串类型str_i := strconv.Itoa(i)                           // strconv.Itoa函数将int类型转换成字符串类型str_b := strconv.FormatBool(b)                     // strconv.FormatBool函数将bool类型转换成字符串类型str_f := strconv.FormatFloat(l, 'f', 6, 64)        // strconv.FormatFloat函数将float64类型转换成字符串类型,'f'表示格式为浮点数,6表示小数点后保留6位,64表示float64类型str_C := string(a)                                 // string函数将byte类型转换成字符串类型fmt.Println("使用strconv包中的函数将其他类型转换成字符串类型")         // 使用strconv包中的函数将其他类型转换成字符串类型fmt.Printf("str_i类型 %T str_i值 %v\n", str_i, str_i) // string 10fmt.Printf("str_b类型 %T str_b值 %v\n", str_b, str_b) // string truefmt.Printf("str_f类型 %T str_f值 %v\n", str_f, str_f) // string 3.140000fmt.Printf("str_C类型 %T str_C值 %v\n", str_C, str_C) // string a

字符串转换成其他类

	// 字符串转换成其他类// 1. 使用strconv包中的函数将字符串类型转换成其他类型str_i := fmt.Sprintf("%d", i)                      //Sprintf函数将其他类型转换成字符串类型,%d是int类型的格式str_b := fmt.Sprintf("%t", b)                      //Sprintf函数将其他类型转换成字符串类型,%t是bool类型的格式str_f := fmt.Sprintf("%f", l)                      //Sprintf函数将其他类型转换成字符串类型,%f是float64类型的格式str_C := fmt.Sprintf("%c", a)                      //Sprintf函数将其他类型转换成字符串类型,%c是byte类型的格式var new_i int                            // int类型var new_b bool                           // bool类型var new_l float64                        // float64类型var new_a []byte                         // byte切片类型new_i, _ = strconv.Atoi(str_i)           // strconv.Atoi函数将字符串类型转换成int类型,_表示忽略错误new_b, _ = strconv.ParseBool(str_b)      // strconv.ParseBool函数将字符串类型转换成bool类型,_表示忽略错误new_l, _ = strconv.ParseFloat(str_f, 64) // strconv.ParseFloat函数将字符串类型转换成float64类型,64表示float64类型,_表示忽略错误new_a = []byte(str_C)                    // string类型转换成byte类型fmt.Println("使用strconv包中的函数将字符串类型转换成其他类型")fmt.Printf("new_i类型 %T new_i值 %v\n", new_i, new_i) // int 10fmt.Printf("new_b类型 %T new_b值 %v\n", new_b, new_b) // bool truefmt.Printf("new_l类型 %T new_l值 %v\n", new_l, new_l) // float64 3.140000fmt.Printf("new_a类型 %T new_a值 %v\n", new_a, new_a) // []uint8 [97]

数值类型与布尔类型转换

注意:在Go中数值类型无法直接转换成布尔类型,布尔类型也无法直接转换成数值类型。


字符串型与布尔型转换

package mainimport ("fmt""strconv"
)func main() {b, _ := strconv.ParseBool("true")fmt.Printf("Value: %v type:%T\n", b, b) // Value: true type:boolc, _ := strconv.ParseBool("xxxxxxx")fmt.Printf("Value: %v type:%T\n", c, c) // Value: false type:bool
}

不建议将布尔类型转换成字符串型,因为Go中的布尔判断并不依照字符串是否非空进行判断,转换后可能会出现更多问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

001-SpringBoot整合日志

SpringBoot整合日志 一、引入依赖二、配置 application.yml三、配置文件 logback.xml四、配置文件 WebConfigurerAdapter五、配置常量文件六、配置拦截器七、效果展示一、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId&…

Rust 图形界面开发——使用 GTK 创建跨平台 GUI

第五章 图形界面开发 第一节 使用 GTK 创建跨平台 GUI GTK&#xff08;GIMP Toolkit&#xff09;是一个流行的开源跨平台图形用户界面库&#xff0c;适用于创建桌面应用程序。结合 Rust 的 gtk-rs 库&#xff0c;开发者能够高效地构建现代化 GUI 应用。本节将详细探讨 GTK 的…

Linux的磁盘/文件管理,以centos7为例

Linux的磁盘/文件管理,以centos7为例 物理磁盘情况我的磁盘简述一下含义 使用新硬盘流程简述硬盘分区格式化(文件系统(本地文件系统))创建挂载点;挂载磁盘挂载解释 LVM(Logical Volume Management)硬盘到文件系统的层次结构LVM优势:重要概念实践操作 附录(命令) 物理磁盘情况 …

Conda-Pack打包:高效管理Python环境

在Python开发中&#xff0c;环境管理是一个不可忽视的重要环节。Conda是一个流行的包管理器和环境管理器&#xff0c;它允许用户创建隔离的环境&#xff0c;以避免不同项目之间的依赖冲突。Conda-pack是一个工具&#xff0c;可以帮助我们将一个conda环境打包成一个可移植文件&a…

人形机器人训练、机器臂远程操控、VR游戏交互、影视动画制作,一副手套全部解决!

广州虚拟动力基于自研技术推出了多节点mHand Pro动捕数据手套&#xff0c;其最大的特点就是功能集成与高精度捕捉&#xff0c;可以用于人形机器人训练、机器臂远程操控、VR游戏交互、影视动画制作等多种场景。 一、人形机器人训练 mHand Pro动捕数据手套双手共装配16个9轴惯性…

vue3+view-ui-plus+vite+less 实现自定义iview样式

首先是结论&#xff1a; "less": "^2.7.3", "less-loader": "^4.1.0", vite.config.js resolve: {alias: {// 设置路径~: path.resolve(__dirname, ./),// 设置别名: path.resolve(__dirname, ./src)},extensions: [.mjs, .js, .ts…

SpringMVC接收数据

一、访问路径设置: RequestMapping注解的作用就是将请求的URL地址和处理请求的方式(handler方法)关联起来&#xff0c;建立映射关系;SpringMVC接收到指定的请求&#xff0c;就会来找到在映射关系中对应的方法来处理这个请求 1.精准路径匹配: 在RequestMapping注解指定URL地址…

【微服务】Docker

一、Docker基础 1、依赖的兼容问题&#xff1a;Docker允许开发中将应用、依赖、函数库、配置一起打包&#xff0c;形成可移植镜像Docker应用运行在容器中&#xff0c;使用沙箱机制&#xff0c;相互隔离。 2、如何解决开发、测试、生产环境有差异的问题&#xff1a;Docker镜像…

【自用】管材流转项目前端重部署流程 vue2 webpackage4 vuecli4

一、配置 1.下载项目&#xff0c;使用 IDEA 打开&#xff0c;并配置 Nodejs 它提示我&#xff0c;需要 Node.js&#xff0c;因为 nodejs 14 的 installer 已经官网已经找不到了&#xff0c;使用 fnm 又太麻烦&#xff0c; 所以直接采用在 IDEA 中下载的方式就好了。 2.清除缓…

工程设计行业内外网文件交换解决方案:FileLink助力高效、安全的跨网协作

在工程设计行业&#xff0c;文件交换和信息共享是项目顺利推进的关键。尤其是涉及复杂的设计图纸、技术方案、合同文件等重要资料时&#xff0c;如何确保文件在内外网之间的高效、安全传输&#xff0c;直接影响到项目的进度和质量。FileLink正是为此而生&#xff0c;它为工程设…

鸿蒙多线程开发——Sendable使用注意事项

1、概 述 本文是在鸿蒙多线程开发——线程间数据通信对象03(sendable)基础上做的扩展讨论。 Sendable协议定义了ArkTS的可共享对象体系及其规格约束。符合Sendable协议的数据&#xff08;以下简称Sendable对象&#xff09;可以在ArkTS并发实例间传递。 默认情况下&#xff0…

1074 Reversing Linked List (25)

Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K3, then you must output 3→2→1→6→5→4; if K4, you must output 4→3→2→1→5→6. Input Specif…

Wwise SoundBanks内存优化

1.更换音频格式为Vorbis 2.停用多余的音频&#xff0c;如Random Container的随机脚步声数量降为2个 3.背景音乐勾选“Stream”。这样就让音频从硬盘流送到Wwise&#xff0c;而不是保存在内存当中&#xff0c;也就节省了内存 4.设置最大发声数Max Voice Instances 5.设置音频…

产品转后端?2

产品经理的视角能让你成为更好的后端工程师&#xff1a; 理解业务需求转换为技术方案的过程知道为什么要这样设计API明白数据结构的选择如何影响用户体验了解性能指标对业务的实际影响 在实习过程中可以有意识地向后端倾斜&#xff1a; 常规产品经理工作&#xff1a; "…

C 语言 “神秘魔杖”—— 指针初相识,解锁编程魔法大门(一)

文章目录 一、概念1、取地址操作符&#xff08;&&#xff09;2、解引用操作符&#xff08;*&#xff09;3、指针变量1、 声明和初始化2、 用途 二、内存和地址三、指针变量类型的意义1、 指针变量类型的基本含义2、 举例说明不同类型指针变量的意义 四、const修饰指针1、co…

Android 使用OpenGLES + MediaPlayer 获取视频截图

概述 Android 获取视频缩略图的方法通常有: ContentResolver: 使用系统数据库MediaMetadataRetriever: 这个是android提供的类&#xff0c;用来获取本地和网络media相关文件的信息ThumbnailUtils: 是在android2.2&#xff08;api8&#xff09;之后新增的一个&#xff0c;该类为…

博泽Brose EDI项目案例

Brose 是一家德国的全球性汽车零部件供应商&#xff0c;主要为全球汽车制造商提供机电一体化系统和组件&#xff0c;涵盖车门、座椅调节系统、空调系统以及电动驱动装置等。Brose 以其高质量的创新产品闻名&#xff0c;在全球拥有多个研发和生产基地&#xff0c;是全球第五大家…

python使用python-docx处理word

文章目录 一、python-docx简介二、基本使用1、新建与保存word2、写入Word&#xff08;1&#xff09;打开文档&#xff08;2&#xff09;添加标题&#xff08;3&#xff09;添加段落&#xff08;4&#xff09;添加文字块&#xff08;5&#xff09;添加图片&#xff08;6&#xf…

aws(学习笔记第十五课) 如何从灾难中恢复(recover)

aws(学习笔记第十五课) 如何从灾难中恢复 学习内容&#xff1a; 使用CloudWatch对服务器进行监视与恢复区域(region)&#xff0c;可用区(available zone)和子网(subnet)使用自动扩展(AutoScalingGroup) 1. 使用CloudWatch对服务器进行监视与恢复 整体架构 这里模拟Jenkins Se…

lwip raw、netcoon、socket三种接口编程的区别

目录 一、前言 二、LWIP 简介 三、LWIP RAW 编程 1.概念与原理 2.编程模型与流程 3.示例代码 4.优点与缺点 四、LWIP NETCONN 编程 1.概念与原理 2.编程模型与流程 3.示例代码 4.优点与缺点 五、LWIP SOCKET 编程 1.概念与原理 2.编程模型与流程 3.示例代码 …