将其他值转换为string  一般常用fmt.Sprintf(格式,转换的值)

    // 使用fmt.Sprintf 转换所有的类型为string 使用 这是第一种
// 注意在sprintf使用中需要注意转换的格式 int为%d float为%f bool为%t byte为%c
var i int =
var f float64 = 12.456
var t bool = true
var b byte = 'a'
var strs string strs = fmt.Sprintf("%d",i)
fmt.Println(strs)
fmt.Printf("str type %T ,strs=%v \n",strs,strs) strs = fmt.Sprintf("%f",f)
fmt.Println(strs)
fmt.Printf("str type %T ,strs=%v \n",strs,strs) strs = fmt.Sprintf("%t",t)
fmt.Println(strs)
fmt.Printf("str type %T ,strs=%v \n",strs,strs) strs = fmt.Sprintf("%c",b)
fmt.Println(strs)
fmt.Printf("str type %T ,strs=%v \n",strs,strs)

显示

str type string ,strs=
12.456000
str type string ,strs=12.456000
true
str type string ,strs=true
a
str type string ,strs=a

第二种 有局限性  只能单一转换 看源码可知

strconv.Itoa() 源码 只能传递int参数

// Itoa is equivalent to FormatInt(int64(i), 10).
func Itoa(i int) string {
return FormatInt(int64(i), )
}
    var xxxx int =
numss := strconv.Itoa(xxxx)
fmt.Println(numss)
fmt.Printf("\n转换前是 %T, 经过strconv.Itoa转换为 %T, 值为%v",xxxx,numss,numss)

显示为

转换前是 int, 经过strconv.Itoa转换为 string, 值为5000





至于string 转其他类型操作如下 前提是string能转换为其他基本类型  string "123x" 不能转 为 int 123x   强转则为0 但是类型会变为int

相当于没转成功,相当于给你一个int的默认值和变量名 不管转换的变量之前有没有声明

而其他类型转string不需要担心

第一种  还是strconv.Atoi()  看源码也能得知只能传递string类型 返回int类型  局限性很大  并且只能将整数字符串转换 入股掺杂一些字母之类的会错误

    var vvvv string = ""
// 只能整数的字符串转换 不能掺杂其他不适整数的字符
nums,_ := strconv.Atoi(vvvv)
fmt.Println(nums)
fmt.Printf("\n转换前是 %T, 经过strconv.Atoi转换为 %T, 值为%v",vvvv,nums,nums)

显示

转换前是 string, 经过strconv.Atoi转换为 int, 值为123

第二种 还是strconv 包的函数方法

string转int

// string 类型转换为 其他类型

    var str string = ""

  # strconv.parseint 传入转换的字符串 返回int类型和error
ing,_ := strconv.ParseInt(str,,)
fmt.Println(ing)
fmt.Printf("int type %T %v\n",ing,ing) # 如果对返回int64位不想要int64的 可以进行一个强制转换为int32
ing = int32(ing) # 注意只有同类型才能转换
  同理 下面通过strconv.Parsexxx的也可以通过这个转换为同类型的其他格式
但是需要考虑 范围 比如int64转int32 如果int64返回的值很大,那么强转会出现值不对

显示

int type int64  

如果字符串中含有其他 比如字母 则显示

var str string = "123z"      // 增加一个z

ing,_ := strconv.ParseInt(str,,)
fmt.Println(ing)
fmt.Printf("int type %T %v\n",ing,ing)

# 显示 int type int64

字符串转为bool类型

var str1 string = "true"

b , _ := strconv.ParseBool(str1)
fmt.Println(b)
fmt.Printf("%t",b)

显示

true
true

但有个局限,只能字符串是"true""是才会转换为bool = true类型

其他 看我上面的红字和绿字 因为转换不成功所以都是一个bool默认值  false

比如

var str1 string = "truez"

b , _ := strconv.ParseBool(str1)
fmt.Println(b)
fmt.Printf("%t",b) 显示

false
false

string转float

    var floatstr string = "123.456"

    floats,_ := strconv.ParseFloat(floatstr,)
fmt.Println(floats)          //返回float64 可以强转为float32 但是注意float64位的值大小,如果超过float32位 请不要转换
fmt.Printf("str类型为 %T ,值为 %v ,浮点值为 %f" ,floats,floats,floats)

显示为

123.456
str类型为 float64 ,值为 123.456 ,浮点值为 123.456000

学习视频资料 https://www.bilibili.com/video/av36489007/?p=50

golang 学习之路 string转换为其他类型 其他类型转换为string的更多相关文章

  1. Scala 学习之路(六)—— 常用集合类型之 List & Set

    一.List字面量 List是Scala中非常重要的一个数据结构,其与Array(数组)非常类似,但是List是不可变的,和Java中的List一样,其底层实现是链表. scala> val l ...

  2. IOS开发---菜鸟学习之路--(十六)-将Image转换为Base64

    我们直接在.m文件的引用头文件部分 和 @interface   AddPictureViewController () 之间  加入 增加部分的代码 然后就可以使用图片转Base64了 #impor ...

  3. Scala 学习之路(七)—— 常用集合类型之 Map & Tuple

    一.映射(Map) 1.1 构造Map // 初始化一个空map val scores01 = new HashMap[String, Int] // 从指定的值初始化Map(方式一) val sco ...

  4. Qt学习之路2---窗口组件及窗口类型

    窗口组件: 图形用户界面由不同的窗口和窗口组件构成: Qt以组件对象的方式,构建图形用户界面. 组件的类型包括: ---容器类(父组件):用于包含其他的界面组件 ---功能类(子组件):用于实现特定的 ...

  5. golang学习之路

    目录 go语言介绍 开发环境准备 go语言基础 Go语言常用标准库 数据库相关 前端相关 web开发 go语言介绍 为什么要学习go语言 开发环境准备 从零开始搭建Go语言开发环境 VS Code配置 ...

  6. golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换

    golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...

  7. [Golang学习笔记] 06 程序实体3 类型断言和类型转换

    类型断言: 语法:<目标类型的值>,<布尔参数> := <表达式>.( 目标类型 ) // 安全类型断言<目标类型的值> := <表达式>. ...

  8. golang学习笔记---string && strconv

    1.字符串的组成?Golang的字符串都是由单个字节连接起来的,每个字节都是UTF8编码标识的Unicode文本.(不需要在考虑中文不兼容问题) 2.如何遍历字符串?先看一个例子: package m ...

  9. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. Iterator迭代器解决[为何禁止在foreach内增删]

    迭代器的应用场景: 1.对集合进行增加删除,禁止使用foreach,循环的动态操作2.倒序遍历3.遍历循环 步入正题:为何禁止在foreach内进行增删? 先看一下代码: /**         *  ...

  2. 规范化开发和time相关模块

    1. 规范化开发 如果在开发的过程中将所有的程序放在一个py文件中,加载时会很慢,同时降低了代码的可读性,查询起来也麻烦 所以要将一个oy文件合理的分成多个py文件,在blog大目录下分为以下几个部分 ...

  3. POJ2352 Stars [树状数组模板]

    题意:输入一n颗星星的x,y坐标,给定判断level的标准,即某颗星星左下边(不高于它,不超过他,相当于以他为基准的第三象限)星星的数目为level, 输出level从0到n的星星个数. //poj2 ...

  4. java 二分法查找原理

    二分法查找原理: 1.只要低位下标不大于高位下标,就进行二分查找(步骤1-3) 2.先在有序的数组中对半查找中间的坐标,如果中标和要查找的下标相等时,找到目标数,那二分结束. 3.如果步骤2没有找到, ...

  5. 关于前端使用JavaScript获取base64图片大小的方法

    base64原理 Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式. 如果剩下的字符不足3个字节,则用0填充,输出字 ...

  6. git pull 显示的冲突---解决办法git stash

    git pull:显示本地仓库与远程仓库有冲突 Please, commit your changes or stash them before you can merge. Aborting 解决办 ...

  7. TCP\IP协议簇-分层模型

    OSI 模型   数据单元 层 功能 主机层 Data(数据) 7. 应用层 网络进程到应用程序. 6. 表示层 数据表示形式,加密和解密,把机器相关的数据转换成独立于机器的数据. 5. 会话层 主机 ...

  8. 阿里巴巴-德鲁伊druid连接池配置

    阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好,Druid与其他数据库连接池使用方法基本一样(与DBCP非常相似),将数据库的连接信息全部配置给Data ...

  9. 将项目导入myeclipse后 tortoise svn 右键项目不能更新和提交

    使用 tortoise svn客户端将svn服务器上的项目checkout之后正常,可以更新也可以提交:当将这个项目导入MyEclipse之后,不能更新和提交了只出现svn升级工作副本这一字样:网上搜 ...

  10. OpenSSL编程之摘要

    说明: 数字摘要是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,也就是Hash函数.数字摘要就是采用单向Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一 ...