基本数据类型和string类型的转换
基本数据类型转string类型:
方式1:fmt.Sprintf("%参数", 表达式) 【个人习惯这个,灵活】
函数的介绍:
func Sprintf
func Sprintf(format string, a ...interface{}) string
Sprintf根据format参数生成格式化的字符串并返回该字符串
1)参数需要和表达式的数据类型相匹配
2)fmt.Sprintf().. 会返回转换后的字符串
3)案例演示
[root@node3 shangxuetang]# cat basictype2string.go
package main
import (
"fmt"
_ "unsafe"
)
//演示golang中基本数据练习转成string使用
func main() {
var num1 int = 99
var num2 float64 = 23.456
var b bool = true
var mychar byte = 'h'
var str string //空的str
//使用第一种方式来转换 fmt.Sprintf方法
str = fmt.Sprintf("%d", num1)
fmt.Printf("str type %T str=%q \n", str, str)
str = fmt.Sprintf("%f", num2)
fmt.Printf("str type %T str=%q \n", str, str)
str = fmt.Sprintf("%t", b)
fmt.Printf("str type %T str=%q \n", str, str)
str = fmt.Sprintf("%c", mychar)
fmt.Printf("str type %T str=%q \n", str, str)
}
输出的结果:
[root@node3 shangxuetang]# go run basictype2string.go
str type string str="99"
str type string str="23.456000"
str type string str="true"
str type string str="h"
方式2:使用strconv包的函数
函数介绍:
func FormatBool(b bool) string
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
func FormatInt(i int64, base int) string
返回i的base进制的字符串表示。base必须在2到36之间,结果中会使用小写字母'a'到'z'表示大于10的数字。
func FormatUint(i uint64, base int) string
案例说明:
[root@node3 shangxuetang]# cat basictype2string2.go
package main
import (
"fmt"
"strconv"
)
func main() {
//第二种方式 strconv 函数
var num3 int = 99
var num4 float64 = 23.456
var b2 bool = true
var str string
str = strconv.FormatInt(int64(num3), 10) //这里的10,表示转成10进制
fmt.Printf("str type %T str=%q\n", str, str)
//str = strconv.FormatFloat(num4, 'f', 10, 64)
//说明:'f' 格式 10:表示小数位保留10位 64 :表示这个小数是float64
str = strconv.FormatFloat(num4, 'f', 10, 64)
fmt.Printf("str type %T str=%q\n", str, str)
str = strconv.FormatBool(b2)
fmt.Printf("str type %T str=%q\n", str, str)
}
[root@node3 shangxuetang]# go run basictype2string2.go
str type string str="99"
str type string str="23.4560000000"
str type string str="true"
//stroconv包中有一个函数Itoa,只能转换int类型的
//int类型转换string
var num5 int = 4567
str = strconv.Itoa(num5)
fmt.Printf("str type %T str=%q\n", str, str)
//int64类型是不能转换的,必须先转换成int以后才能转换成字符串
var num6 = 4567
str = strconv.Itoa(int(num6)) //先把int64转换成了int类型,然后在转换成string类型。
fmt.Printf("str type %T str=%q\n", str, str)
string类型转换基本数据类型
1)使用strconv包的函数
func ParseBool(str string) (value bool, err error)
func ParseFloat(s string, bitSize int) (f float64, err error) //base int是选择几进制的,10进制的就写10就可以
func ParseInt(s string, base int, bitSize int) (i int64, err error)
func ParseUint(s string, b int, bigSize int) (n uint64, err error)
note:因为返回的是int64 或者 float64,如果希望要得到int32,float32等如下处理。
//如果希望将str-->int32的可以这样处理
var num5 int32
num5 = int32(num)
2) 案例演示
[root@node3 shangxuetang]# cat stringtobasictype.go
package main
import (
"fmt"
"strconv"
)
//演示golang中string类型转成基本数据类型
func main() {
var str string = "true" //如果这里不是字符串true而是字符串hello的话,运行以后的结果就是false了。
var b bool //如果这里把b = true的话,运行结果也还是false,说明这里就算是设定了类型也改不了上面的默认值。
//说明
//1. strconv.ParseBool(str) 函数会返回两个值(value bool, err error)
//2. 因为我只想获取到 value bool, 不想获取 err 所以使用 _
b, _ = strconv.ParseBool(str)
fmt.Printf("b type %T b=%v\n", b, b)
var str2 string = "1234590"
var n1 int64
var n2 int
n1, _ = strconv.ParseInt(str2, 10, 64)
n2 = int(n1)
fmt.Printf("n1 type %T n1=%v\n", n1, n1)
fmt.Printf("n1 type %T n2=%v\n", n2, n2)
var str3 string = "123.456"
var f1 float64
f1, _ = strconv.ParseFloat(str3, 64)
fmt.Printf("n1 type %T f1=%v\n", f1, f1)
}
[root@node3 shangxuetang]# go run stringtobasictype.go
b type bool b=true
n1 type int64 n1=1234590
n1 type int n2=1234590
n1 type float64 f1=123.456
注意事项:
在将string类型转成基本数据类型时,要确保string类型能够转成有效的数据,比如我们可以把“123”,转成一个整数,但是不能把“hello” 转成一个整数,如果这样做,golang直接将其转成0。其他类型也是一样的道理,float =》0, bool=》false。
var str4 string = "hello"
var n3 int64 = 11
n3 , _ = strconv.ParseInt(str4, 10, 64)
fmt.Printf("n3 type %T n3=%v\n", n3, n3) //n3 = 0 //默认值
基本数据类型和string类型的转换的更多相关文章
- golang数据基本数据类型和string类型的转换
基本类型之间的转换 golang在不同类型的变量之间赋值时需要显式转换,也就是说golang中数据类型不能自动转换. 表达式T(v)将值v转换为类型T 1.数据类型的转换可以是从范围小——>范围 ...
- Timestame类型和String 类型的转化
Timestame类型和String 类型的转化 String转化为Timestamp: SimpleDateFormat df = new SimpleDateFormat("yyyy-M ...
- php中函数 isset(), empty(), is_null() 的区别,boolean类型和string类型的false判断
php中函数 isset(), empty(), is_null() 的区别,boolean类型和string类型的false判断 实际需求:把sphinx返回的结果放到ssdb缓存里,要考虑到sph ...
- DATETIME类型和BIGINT 类型互相转换
项目中使用BIGINT来存放时间,以下代码用来转换时间类型和BIGINT类型 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ========= ...
- 基本数据类型和string的转换
- 数据库Date类型和JavaDate类型的转换
问题: java.lang.ClassCastException : java.util.Date cannot be cast to java.sql.Date 1.若是想将字符串装换成sq ...
- java类型和mysql类型的转换
Integer -----> int 11String -----> varchar 20Long -----> bigint 20String - ...
- Java Blob类型和String类型相互转换
1.String 转 Blob: String content = "Hello World!"; Blob blob = Hibernate.createBlob(content ...
- MIME类型和Java类型
MIME类型和Java类型 类型转换Spring Cloud Stream提供的开箱即用如下表所示:“源有效载荷”是指转换前的有效载荷,“目标有效载荷”是指转换后的“有效载荷”.类型转换可以在“生产者 ...
随机推荐
- Android手机、电视(盒子) 打开ADB调试 一览表
手机.电视(盒子) 打开ADB调试 一览表 一.手机打开ADB调试方法 序号 名称 描述 方式 1 华为手机 EMUI 1.设置 ->关于手机-> 版本号 点击(4~5次)2.返回设置 - ...
- css标签学习-vertical-align标签
今天在学习查阅代码的时候,发现了一个不认识的CSS代码,于是进行学习. <html> <head> <style type="text/css"> ...
- 13-H.264编码解码器的无线应用:1080P60 3D无线影音传输器
H.264编码解码器的无线应用:1080P60 3D无线影音传输器 一.应用领域 家庭媒体娱乐中心 新闻现场采访 无线3D投影机 高清视频会议终端无线延长器 教学,医疗示教 考古,高档商业区域,监狱等 ...
- 脚本_根据 md5 校验码,检测文件是否被修改
#!bin/bash#功能:根据 md5 校验码,检测文件是否被修改#作者:liusingbon#本示例脚本检测的是/etc 目录下所有的 conf 结尾的文件,根据实际情况,您可以修改为其他目录或文 ...
- vim常用快捷键及操作记录
1. 安装 sudo apt-get install vim 或者 yum install -y vim-enhanced 2. 具体使用技巧如下 打开文件: 命令/操作 说明 vim + filen ...
- python常用函数 I
iter(iterable) 可以生成一个迭代器. 例子: islice(iterator, int, int) itertools的islice方法为迭代器生成器提供切片操作. 例子: izip_l ...
- DB事务隔离级别
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11393417.html 事务隔离级别 Note: Oracle默认的隔离级别是 READ COMMIT ...
- 【leetcode】726. Number of Atoms
题目如下: 解题思路:我用的是递归的方法,每次找出与第一个')'匹配的'('计算atom的数量后去除括号,只到分子式中没有括号为止.例如 "K4(ON(SO3)2)2" -> ...
- UIView响应事件的两个方法
参考自:https://blog.csdn.net/mushaofeng1990/article/details/62434349 用户触摸屏幕后的事件传递过程: //方法A-(UIView *)hi ...
- 谷歌已经对Android的开源严防死守
上周,沸沸扬扬的Android垄断案把Google又一次推向了风口浪尖,在这次的垄断案中,Google被欧盟起诉赔偿50亿美元,被起诉的其中一个原因是Google对外宣称Android是开放的,但其实 ...