首页 > 其他分享 >GO 学习笔记之三 基础语法(11) 数据类型转换

GO 学习笔记之三 基础语法(11) 数据类型转换

时间:2024-12-19 10:24:18浏览次数:3  
标签:11 类型转换 string err int strconv 字符串 GO 函数

一、将 字符串类型的数字转换为 数字类型

1)使用 strconv 包中的 Atoi 函数

Atoi 函数用于将字符串转换为 int。如果字符串不是合法的 int 表示,函数会返回错误。

package main
 
import (
    "fmt"
    "strconv"
)
 
func main() {
    str := "123"
    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Printf("There was an error: %s\n", err)
    } else {
        fmt.Printf("The integer is: %d\n", num)
    }
}

2)使用 strconv 包中的 ParseInt 函数

ParseInt 函数用于将字符串转换为 int。和 Atoi 函数不同,ParseInt 函数可以处理更大的数字,并且可以指定基数。

func ParseInt(s string, base int, bitSize int) (i int64, err error)

返回字符串表示的整数值,接受正负号。

base指定进制(2到36),如果base为0,则会从字符串前置判断,”0x”是16进制,”0”是8进制,否则是10进制;

bitSize指定结果必须能无溢出赋值的整数类型,0、8、16、32、64 分别代表 int、int8、int16、int32、int64;

返回的err是*NumErr类型的,如果语法有误,err.Error = ErrSyntax;如果结果超出类型范围err.Error = ErrRange。

package main
 
import (
    "fmt"
    "strconv"
)
 
func main() {
    str := "123"
    num, err := strconv.ParseInt(str, 10, 64)   //  字符串转为 int64
    if err != nil {
        fmt.Printf("There was an error: %s\n", err)
    } else {
        fmt.Printf("The integer is: %d\n", num)
    }
}

二、将数字转换为字符串

1)使用 strconv 包中的 Itoa 函数

Itoa()函数用于将int类型数据转换为对应的字符串表示

func Itoa(i int) string

2)使用 strconv 包中的 FormatInt 函数

func FormatInt(i int64, base int) string

返回i的base进制的字符串表示。base 必须在2到36之间,结果中会使用小写字母’a’到’z’表示大于10的数字。

三、将字符串转换为 bool 类型

1)使用  strconv 包中的 ParseBool 函数

func ParseBool(str string) (value bool, err error)

返回字符串表示的bool值。它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE;否则返回错误。

四、将字符串转换为 浮点类型

1)使用 strconv 包中的 ParseFloat 函数

func ParseFloat(s string, bitSize int) (f float64, err error)

解析一个表示浮点数的字符串并返回其值。

如果s合乎语法规则,函数会返回最为接近s表示值的一个浮点数(使用IEEE754规范舍入)。

bitSize指定了期望的接收类型,32是float32(返回值可以不改变精确值的赋值给float32),64是float64;

返回值err是*NumErr类型的,语法有误的,err.Error=ErrSyntax;结果超出表示范围的,返回值f为±Inf,err.Error= ErrRange。

b, err := strconv.ParseBool("true")

f, err := strconv.ParseFloat("3.1415", 64)

i, err := strconv.ParseInt("-2", 10, 64)

u, err := strconv.ParseUint("2", 10, 64)

这些函数都有两个返回值,第一个返回值是

五、将bool 类型转换为字符串

1)使用 strconv 包中的 FormatBool 函数

func FormatBool(b bool) string

根据b的值返回”true”或”false”。

六、将 浮点类型 转换为字符串

1)使用 strconv 包中的 FormatFloat 函数

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

函数将浮点数表示为字符串并返回。

bitSize表示f的来源类型(32:float32、64:float64),会据此进行舍入。

fmt表示格式:’f’(-ddd.dddd)、’b’(-ddddp±ddd,指数为二进制)、’e’(-d.dddde±dd,十进制指数)、’E’(-d.ddddE±dd,十进制指数)、’g’(指数很大时用’e’格式,否则’f’格式)、’G’(指数很大时用’E’格式,否则’f’格式)。

prec控制精度(排除指数部分):对’f’、’e’、’E’,它表示小数点后的数字个数;对’g’、’G’,它控制总的数字个数。如果prec 为-1,则代表使用最少数量的、但又必需的数字来表示f。

五、示例

1、string 转为 int

int, err := strconv.Atoi(string)

2、string 转为 int64

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

3、int 转为 string

string := strconv.Itoa(int)

4、int64 转为 string

string := strconv.FormatInt(int64,10)

s3 := strconv.FormatInt(-2, 16)

5、将bool 类型转换为字符串

s1 := strconv.FormatBool(true)

6、将 float 类型转换为字符串

s2 := strconv.FormatFloat(3.1415, 'E', -1, 64)

 

标签:11,类型转换,string,err,int,strconv,字符串,GO,函数
From: https://www.cnblogs.com/sandyflower/p/18616523

相关文章

  • RTL8211F以太网千兆RGMII开发板 使用说明
    深圳市飞录科技有限公司www.szfpga.com1.概述    RGMII 开发板主芯片是RTL8211FD。配套国产GOWIN的2AR-18和NR-9C的开发板,测试RGMII的千兆以太网数据发送和接收功能。  开发板的代码是基于MAC模式,通过循环发送计数器来判断包发送和接收是否正确。   2.操......
  • 网站顶部logo在哪里修改,如何在网站后台修改顶部Logo
    修改网站顶部Logo是提升品牌形象的重要步骤。以下是详细的步骤:登录后台管理系统:打开浏览器,输入后台管理地址(如http://yourdomain.com/admin.php或http://yourdomain.com/wp-admin),使用管理员账号登录。导航到Logo设置页面:在后台左侧菜单中,找到“外观”或“主题”选项,点......
  • Apache SeaTunnel如何实现MongoDB到Doris无缝数据同步?
    如果你需要使用ApacheSeaTunnel将MongoDB数据库的数据同步到Doris,你可以按照以下步骤进行操作。这些步骤基于ApacheSeaTunnel的官方文档和社区提供的最佳实践:一、环境准备下载并安装SeaTunnel:访问SeaTunnel的官方GitHub页面,下载最新稳定版本的SeaTunnel。解压下载的文件......
  • AD DA收发卡 设计资料:611-基于VU9P的2路4Gsps AD 2路5G DA PCIe收发卡
    一、板卡概述基于XCVU9P的5GspsADDA收发PCIe板卡。该板卡要求符合PCIe3.0标准,包含一片XCVU9P-2FLGA2014I、2组64-bit/8GBDDR4、2路高速AD,2路高速DA,支持外触发,外时钟。板卡工作温度范围0到60℃,板卡设计加工包含散热装置,支持服务器风冷散热。软件包括接口测试软件,支持甲......
  • 开箱即用!一个基于 Go 的文件分享工具!
    大家好,我是Java陈序员。今天,给大家介绍一个自托管的文件分享工具,开箱即用!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍GoFile——一个基于Go实现的文件分享工具,开箱即用,内置图床和视频播放页面,可用于局域网内分......
  • go-torch
    目录go-torch是一个用于分析Go程序性能的工具,它可以生成火焰图(FlameGraphs)来帮助分析CPU的使用情况。要安装go-torch,你需要先安装Go语言环境,并设置好GOPATH环境变量。然后使用goget命令来安装go-torch。以下是安装go-torch的步骤:运行以下命令:goget-ug......
  • 只谈C++11新特性 - Range-based for 循环
    Range-basedfor循环引言C++11引入了一种更加简洁和直观的方式来遍历容器中的元素:基于范围的for循环(Range-basedfor循环)。这种语法不仅简化了代码,还提高了代码的可读性和维护性。本文将详细介绍Range-basedfor循环的用法,并结合代码示例进行说明。Range-based......
  • 只谈C++11新特性 - auto
    autoC++11应用auto关键字,不再需要明确指定类型,而是由编译器根据设定值来自动推断对应的类型。下面我们将详细解释auto的使用,并通过代码例子来展示。1.auto的基本使用C++11中的auto可以自动推断变量的类型:#include<iostream>#include<vector>intmain()......
  • 硬件工程师面试题 11-20
        把常见的硬件面试题进行总结,方便及时巩固复习。其中包括网络上的资源、大佬们的大厂面试题,其中可能会题目类似,加强印象即可。11、示波器需要关注哪些参数?1,示波器带宽        带宽是示波器最重要的指标之一。        模拟示波器的带宽是一个......
  • spring常用的11个扩展点
    1.类型转换器如果接口中接收参数的实体对象中,有一个字段类型为Date,但实际传递的参数是字符串类型:2022-12-1510:20:15,该如何处理?Spring提供了一个扩展点,类型转换器TypeConverter,具体分为3类:Converter<S,T>:将类型S的对象转换为类型T的对象ConverterFactory<S,R>:将......