Go语言类型转换
类型转换用于将一种数据类型的变量转换为另外一种类型的变量。
Go语言类型转换基本格式如下:
表达式 T(v) 将值 v 转换为类型 T 。
Go语言各种类型转换及函数的高级用法:
strconv包实现了基本数据类型和其字符串表示的相互转换。
转字节
reflect.TypeOf() 查看类型
字符串转字节
package main import (
"fmt"
"reflect"
) func main() {
var str string = "oldboy"
result := []byte(str)
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
32位整形转字节
package main import (
"bytes"
"encoding/binary"
"fmt"
"reflect"
)
// reflect.TypeOf() 查看类型 func main() {
var x int32
x =
bytesBuffer := bytes.NewBuffer([]byte{})
binary.Write(bytesBuffer, binary.BigEndian, x)
result := bytesBuffer.Bytes()
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
转字符串
字节转字符串
package main import (
"fmt"
"reflect"
) func main() {
var b []byte = []byte{, , , , , }
result := string(b)
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
整形转字符串
strconv.Itoa(x)
package main import (
"fmt"
"reflect"
"strconv"
) func main() {
var x int
x =
result := strconv.Itoa(x)
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
FormatInt 将 int 型整数 i 转换为字符串形式
base:进位制(2 进制到 36 进制) 大于 10 进制的数,返回值使用小写字母 ‘a’ 到 ‘z’
func FormatInt(i int64, base int) string
Itoa 相当于 FormatInt(i, 10)
64位整形转字符串
package main import (
"fmt"
"reflect"
"strconv"
) func main() {
var i int64
i = 0x100
result := strconv.FormatInt(i, )
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
布尔值转字符串
package main import (
"fmt"
"reflect"
"strconv"
) func main() {
t := strconv.FormatBool(true)
f := strconv.FormatBool(false)
fmt.Printf("t is %v , t type is %v\n", t, reflect.TypeOf(t))
fmt.Printf("f is %v , f type is %v\n", f, reflect.TypeOf(f))
}
浮点数转字符串
strconv.FormatFloat(f,fmt,prec,bitSize)
f:要转换的浮点数
fmt:格式标记(b、e、E、,f、g、G)
prec:精度(数字部分的长度,不包括指数部分)
bitSize:指定浮点类型(:float32、:float64) 格式标记:
‘b’ (-ddddp±ddd,二进制指数)
‘e’ (-d.dddde±dd,十进制指数)
‘E’ (-d.ddddE±dd,十进制指数)
‘f’ (-ddd.dddd,没有指数)
‘g’ (‘e’:大指数,’f’:其它情况)
‘G’ (‘E’:大指数,’f’:其它情况)
package main import (
"fmt"
"reflect"
"strconv"
) func main() {
f := 100.12345678901234567890123456789
result := strconv.FormatFloat(f, 'e', , )
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
转整形
int转int64
package main import (
"fmt"
"reflect"
) func main() {
var x int =
result := int64(x)
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
字节转32位整形
package main import (
"bytes"
"encoding/binary"
"fmt"
"reflect"
) func main() {
b := []byte{0x00, 0x00, 0x03, 0xe8}
bytesBuffer := bytes.NewBuffer(b) var result int32
binary.Read(bytesBuffer, binary.BigEndian, &result)
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
转浮点型
float32转float64
package main import (
"fmt"
"reflect"
) func main() {
var x float32 =
result := float64(x)
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
整型转浮点型
package main import (
"fmt"
"reflect"
) func main() {
var x int =
result := float32(x)
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
字符串转浮点数
strconv.ParseFloat(str,bitSize)
str:要转换的字符串
bitSize:指定浮点类型(:float32、:float64)
如果 str 是合法的格式,而且接近一个浮点值,
则返回浮点数的四舍五入值(依据 IEEE754 的四舍五入标准)
如果 str 不是合法的格式,则返回“语法错误”
如果转换结果超出 bitSize 范围,则返回“超出范围”
package main import (
"fmt"
"reflect"
"strconv"
) func main() {
var str string = "0.12345678901234567890"
result, _ := strconv.ParseFloat(str, )
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
转布尔值
字符串转布尔值
ParseBool 将字符串转换为布尔值
它接受真值:1, t, T, TRUE, true, True
它接受假值:0, f, F, FALSE, false, False.
其它任何值都返回一个错误
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
result, _ := strconv.ParseBool("1")
fmt.Printf("result is %v , result type is %v\n", result, reflect.TypeOf(result))
}
注意:Go语言不能将其他类型当 bool 值使用
package main func main() {
a :=
if a {
}
}
编译错误:
./main.go::: non-bool a (type int) used as if condition
Go语言类型转换的更多相关文章
- Go 语言类型转换
类型转换用于将一种数据类型的变量转换为另外一种类型的变量.Go 语言类型转换基本格式如下: type_name(expression) type_name 为类型,expression 为表达式. 实 ...
- GO语言学习(十七)Go 语言类型转换
Go 语言类型转换 类型转换用于将一种数据类型的变量转换为另外一种类型的变量.Go 语言类型转换基本格式如下: type_name(expression) type_name 为类型,expressi ...
- Delphi VS C语言类型转换对照
Delphi VS C语言类型转换对照 When converting C function prototypes to Pascal equivalent declarations, it's ...
- C语言类型转换原理
C语言类型转换 int a; a=1.23 这里把1.23赋值给a发生了隐式转换,原理如下: int a; float b=3.14; a=b; b赋值给a的过程:首先找一个中间变量是a的类型(该例中 ...
- c语言类型转换注意事项
转载自: http://blog.csdn.net/zhuimengzh/article/details/6728492 1.隐式转换 C在以下四种情况下会进行隐式转换: 1.算 ...
- C语言---类型转换
itoa 功 能:把一整数转换为字符串 用 法:char *itoa(int value, char *string, int radix); 详细解释:itoa是英文integer to array ...
- 【揭秘】C语言类型转换时发生了什么?
ID:技术让梦想更伟大 作者:李肖遥 链接:https://mp.weixin.qq.com/s/ZFf3imVaJgeesuhl1Kn9sQ 在C语言中,数据类型指的是用于声明不同类型的变量或函数的 ...
- Go语言|类型转换和类型别名
类型转换 同类型之间的转换 Go语言中只有强制类型转换,没有隐式类型转换.该语法只能在两个类型之间支持相互转换的时候使用. import "fmt" func main() { v ...
- C语言类型转换
int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明. itoa():将整型值转 ...
随机推荐
- msfvenom木马生成+免杀+壳(实测并不能免杀)
msfvenom 选项: -p, --payload 有效载荷使用.指定一个有效的自定义载荷 --payload-options 列出有效载荷的标准选项 -l, --list [type] 列出一个模 ...
- C/C++编程可用的Linux自带工具
GNU Binary Utilities或binutils是一整套的编程语言工具程序,用来处理许多格式的目标文件.当前的版本原本由在Cygnus Solutions的程序员以Binary File D ...
- [label][JavaScript][The Defined Guide of JavaScript] 变量的作用域
变量的作用域 一个变量的作用域(scope)是程序中定义这个变量的区域. 全局(global)变量的作用域(scope)是全局性的,即在JavaScript代码中,它处处都有定义. 而在函数之内 ...
- 修改VS中的附加依赖项的继承值
工程用不到的库,想去都去不掉,一直链接错误... 解决方法:打开vs的“属性管理器”窗口.通过这个窗口就可以对里面的继承值进行编辑了 另,“属性管理器”这个窗口,一般在“其他窗口”选项里(至少VS20 ...
- Android-HttpsURLConnectionHelp工具类
Java版(HttpURLConnection)Https请求工具类 public class HttpsURLConnectionHelp { /** * 加密协议 */ public static ...
- linux下文件打包、压缩详解
Linux平台下,有如下几种常见的压缩工具: ========================================================================= 工 具 ...
- c# HighCharts使用
最近接到个图形报表的需求,网络上找了几个插件,最后决定用highcharts 需要的文件 1.bll文件,添加到项目引用 http://files.cnblogs.com/files/loveju ...
- .NET控件名称缩写一览表
转载自如下链接: https://www.cnblogs.com/xpvincent/p/9334851.html 字体实在是太小了,我看着好闹心,就复制过来自己放大下,谢谢. 标准控件1 btn B ...
- C#中==操作符存在的缺陷
==操作符因为语法简洁而备受欢迎,但它本身也存在着局限性,比如继承或泛型问题.下面让我们依次来看看吧. 1.==和继承性问题 关于==运算符在继承时存在的问题,我们以String类型为例进行说明. s ...
- WPF 新手引导
参考了https://www.cnblogs.com/ZXdeveloper/p/8391864.html,自己随便实现了一个,记录下,比较丑 <Window x:Class="Use ...