6、做中学 | 三年级下期 Golang值类型相互转换

本次为操作文章,大部分都在讨论类型之间如何转换,使用的是内置方法进行调用执行,详细使用请移步至:
go的API使用文档地址
https://studygolang.com/pkgdoc

一、数值类型相互转换

go中数值转换需要显示转换,不能隐式自动转换,使用T(v)表达式进行转换,T是要声明转换的类型,v是要转换值。

练习代码如下:

	// 类型转换// 类型显示转换var num int32 = 10// int32 转int64var num2 int64 = int64(num)fmt.Println("num2 = ", num2)fmt.Printf("num2 type is %T\n ", num2)//num2 =  10//num2 type is int64// int32 转 float32var num3 float32 = float32(num)fmt.Println("num3 = ", num3)fmt.Printf("num3 type is %T\n ", num3)//num3 =  10//num3 type is float32// int32 转 float64var num4 float64 = float64(num)fmt.Println("num4 = ", num4)fmt.Printf("num4 type is %T\n ", num4)//num4 =  10//num4 type is float64fmt.Printf("num type is %T\n ", num)//  num type is int32

练习注意事项

  1. 类型转换可以从小到大,也可以从大到小
  2. 转换过程中,需要显示声明要转换的类型
  3. 被转换的v值,其本身类型不发生变化(上述num变量)
  4. 大类型转换为小类型时,精度可能损失
	// int8 内存储范围 -128 ~ 127n3 = int8(n1) + 127// 编译通过,但是值会按溢出处理fmt.Println("n3 = ", n3)// n3 =  -117// 编译不过//n3 = int8(n1) + 128 // Invalid operation: int8(n1) + 128 (cannot convert the constant 128 to the type int8)

二、数值转换字符串

数值转换为字符串有俩种方法:

  1. 使用fmt.Sprintf方法
  2. 使用strconv工具包

练习代码如下

	// 数值转字符串// 1. 使用fmt.Sprintf()var m1 int = 100str1 := fmt.Sprintf("%d", m1)fmt.Printf("str1 type:%T, str1 value: %q\n", str1, str1)// str1 type:string, str1 value: "100"// 2. 使用 strconv// 1. 需要转换int64类型  2. base为10 表示格式化为10进制str2 := strconv.FormatInt(int64(m1), 10)fmt.Printf("str2 type:%T, str2 value: %q\n", str2, str2)// str2 type:string, str2 value: "100"var f float32 = 3.1415926// 1. 需要转换float64类型   2. 'f' 表示式化成-ddd.dddd  3. 2 表示小数点后保留2位  4. 32 表示格式化为32位str3 := strconv.FormatFloat(float64(f), 'f', 2, 32)fmt.Printf("str3 type:%T, str3 value: %q\n", str3, str3)// str3 type:string, str3 value: "3.14"

具体使用细节,请移步官方API文档:https://studygolang.com/pkgdoc
对应的方法详情如下
在这里插入图片描述

三、数值转字符串

使用strconv进行数值,转换为字符串操作
练习代码

	// 字符串转数值// strconv包进行转换var str4 string = "123"// base为要转换的进制,bitSize为要求的int大小str4Num, _ := strconv.ParseInt(str4, 10, 64)fmt.Printf("str4Num type:%T, str4Num value: %v\n", str4Num, str4Num)// str4Num type:int64, str4Num value: 123var str5 string = "3.14"str5Num, _ := strconv.ParseFloat(str5, 64)fmt.Printf("str5Num type:%T, str5Num value: %v\n", str5Num, str5Num)// str5Num type:float64, str5Num value: 3.14var str6 string = "true"str6Num, _ := strconv.ParseBool(str6)fmt.Printf("str6Num type:%T, str6Num value: %v\n", str6Num, str6Num)// str6Num type:bool, str6Num value: true

在这里插入图片描述

  1. 熟练进行值类型相互转换
  2. 熟练进行值类型与字符串转换
  3. 熟练进行字符串与值类型转换

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

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

相关文章

019 高校心理教育辅导系统技术解析:构建心理健康守护平台

高校心理教育辅导系统技术解析:构建心理健康守护平台 在关注大学生心理健康成为教育重点的当下,高校心理教育辅导系统借助数字化技术整合多种功能模块,面向管理员、学生、教师三类角色,实现心理教育辅导工作的高效化与精准化。本…

【ArcGIS】土地资源单项评价

【ArcGIS】土地资源单项评价 一、土地资源单项评价1、评价思路 二、操作步骤1、处理环境设置2、地形坡度评价3、高程评价4、坡度高程叠加评价5、地形起伏度6、土地资源综合评价 一、土地资源单项评价 1、评价思路 (1)利用全域DEM计算地形坡度&#xff…

Prioritized Generative Replay

ICLR 2025 Oral code 具有样本效率的 online reinforcement learning (RL) 通常使用 replay buffer 存储经验,以便在更新价值函数时重复使用。然而,uniform replay 效率低下,因为某些类型的 transition 可能与学习更相关。 虽然对更有用的样本…

Linux -- 线程、锁

1、 Linux线程概念 1.1、什么是线程 在一个程序里的一个执行路线就叫做线程(thread)更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中…

海外服务器的定义和作用都有哪些?

海外服务器可以说是一个统称,其中包含了全球各地除了中国大陆以外其他国家的服务器,在如今的数字化时代中,海外服务器的应用已经成为跨国企业业务拓展、科研与学术交流等多个领域中不可或缺的一部分,能够为各个行业提供更加稳定且…

数据结构之优先级队列

系列文章目录 数据结构之ArrayList_arraylist o(1) o(n)-CSDN博客 数据结构之LinkedList-CSDN博客 数据结构之栈-CSDN博客 数据结构之队列-CSDN博客 数据结构之二叉树-CSDN博客 目录 系列文章目录 前言 一、优先级队列和堆 二、堆的模拟实现 1. 堆的创建 2. 计算建堆…

【版本控制教程】如何使用Unreal Engine 5 + UE源代码控制(Perforce P4)

本文来源perforce.com,由Perforce中国授权合作伙伴——龙智翻译整理,旨在为国内用户提供一份实用、易懂的Unreal Engine 5Perforce P4的中文使用指南。希望能为UE开发者、设计师和美术小伙伴们的版本控制实践提供有力支持~ Unreal Engine 5 是一款尖端的…

opensingleComDialog方法解析优化

下面是对 opensingleComDialog 方法的详细解析,并给出优化建议和优化后的代码。 方法解析 作用 opensingleComDialog(index) 方法用于在输入框失去焦点时(blur 事件)自动根据输入内容进行唯一性查询,如果查到唯一结果则自动填充…

css 实现1个像素在不同分辨率屏幕上画网格线

实现网格线绘制,要考虑画布style尺寸和画布像素大小的缩放关系 单像素绘制主要出现的问题是会模糊,从像素角度看就是出现绘制两个像素,实际就是要做偏移 核心就是:按物理像素绘制,首先要对齐物理像素,计算…

深度图聚类DGC—Paper Notes

目录 Unsupervised Deep Embedding for Clustering Analysis (DEC 2016)Attributed Graph Clustering: A Deep Attentional Embedding Approach (DAEGC 2019)Structural Deep Clustering Network (SDCN 2020)Contrastive Multi-View Representation Learning on Graphs (MVG…

获取YARN application 应用列表的几种方法

目录 1. 使用YARN命令行工具 2. 通过REST API获取 YARN 提供了获取YARN集群上运行的应用列表,以下是几种常见方法: 1. 使用YARN命令行工具 最直接的方式是使用YARN提供的命令行工具: yarn application -list 上述命令会显示所有正在运行的应用。 如果要查看所有应用(…

前端如何下载 ‘Content-Type‘: ‘application/octet-stream‘ 的文件

前言 在前端开发中,经常会遇到需要从后端接口下载文件的需求。当后端返回的响应头中 Content-Type 为 application/octet-stream 时,表示这是一个二进制流文件,浏览器无法直接展示,需要前端处理后下载到本地。本文将详细介绍前端…

咨询顾问进阶——顾问公司战略咨询分析模板【附全文阅读】

该战略咨询分析模板围绕企业战略分析展开,先从总体思考战略分析的目的与方法,接着探讨企业及战略定义、战略地位等。外部环境分析通过 PEST、五种竞争力等模型,分析环境、行业、市场等情况以发现机会与威胁;内部环境分析从资源、核…

宝塔服务器调优工具 1.1(Opcache优化)

第一步:宝塔服务器调优工具 1.1(按照下面的参数填写) 第二步:路径/www/server/php/80/etc/php.ini 搜索jit jit1235 其中1235根据服务器情况修改 第三步:路径/www/server/php/80/etc/php-cli.ini 搜索 jit1235 其中…

React Native【详解】动画

基础动画的实现流程 使用支持动画的组件 <Animated.Viewstyle{[{opacity: fadeAnim, // 绑定透明度动画值},]}><Text>动画元素</Text></Animated.View>Animated.View&#xff1a;用于创建动画容器&#xff0c;支持所有 View 的属性。Animated.Te…

如何轻松地将照片从 iPhone 传输到计算机

如果您的照片占据了 iPhone 上最多的存储空间&#xff0c;为什么不将照片从 iPhone 传输到电脑呢&#xff1f;您可能想要这样做&#xff0c;但不知道如何开始&#xff1f;如果是这样&#xff0c;那么本指南就是您所需要的。我们分享了 6 种方法以及步骤详细信息。您可以按照一种…

操作系统之内存管理(王道)

本篇博客依据王道、与我的笔记而写&#xff0c;讲解了内存的基础知识、内存管理的概念、进程的映像、连续分配管理方式、动态分区分配算法、基本分页存储管理、基本地址变换机构、TLB快表、两级页表、基本分段存储管理方式、段页式存储管理方式、虚拟内存、请求分页管理方式、页…

C++11 std::thread 多线程编程详解

C++11 标准首次将多线程支持引入语言标准库,其中最核心的部分就是 <thread> 头文件中的 std::thread 类。 🧱 一、基本概念 什么是线程? 线程是操作系统调度 CPU 时间的基本单位。一个进程中可以有多个线程,它们共享进程的资源(如内存、堆栈),但拥有各自独立的…

设置vscode使用eslint

在 Visual Studio Code (VSCode) 中设置 ESLint 是一个很好的方式来确保代码质量和一致性。以下是详细的步骤&#xff1a; 1. 安装 ESLint 扩展 打开 VSCode。点击左侧的扩展图标&#xff08;四边形图标&#xff09;。在搜索框中输入 ESLint。找到由 dbaeumer 提供的 ESLint …

.NET 生态中主流的前后端生产级框架

文章目录 **1. 后端框架&#xff08;Backend Frameworks&#xff09;****(1) ASP.NET Core**&#xff08;微软官方&#xff0c;主流选择&#xff09;**(2) ABP Framework**&#xff08;企业级应用开发框架&#xff09; **2. 前端框架&#xff08;Frontend Frameworks&#xff0…