golang是强类型语言,在应用过程中类型转换基本都会用到。下面整理一下常用的类型转换,会持续更新。

整形转字符串

fmt.Println(strconv.Itoa(100))

该方法的源码是:

// Itoa is shorthand for FormatInt(i, 10).
func Itoa(i int) string {return FormatInt(int64(i), 10)
}

可以看出是FormatInt方法的简单实现。

字符串转整形

i, _ := strconv.Atoi("100")
fmt.Println(i)

64位整形转字符串

var i int64
i = 0x100
fmt.Println(strconv.FormatInt(i, 10))

FormatInt第二个参数表示进制,10表示十进制。

字节转32位整形

b := []byte{0x00, 0x00, 0x03, 0xe8}
bytesBuffer := bytes.NewBuffer(b)var x int32
binary.Read(bytesBuffer, binary.BigEndian, &x)
fmt.Println(x)

其中binary.BigEndian表示字节序,相应的还有little endian。通俗的说法叫大端、小端。

32位整形转字节

var x int32
x = 106
bytesBuffer := bytes.NewBuffer([]byte{})
binary.Write(bytesBuffer, binary.BigEndian, x)
fmt.Println(bytesBuffer.Bytes())

字节转字符串

fmt.Println(string([]byte{97, 98, 99, 100}))

字符串转字节

fmt.Println([]byte("abcd"))

转载请注明:快乐编程 » golang类型转换

变参及匿名的用法:

/*** Created by Administrator on 13-12-18.*/
package mainimport ("fmt""os"
)func f1(args ...interface {}) {f2(args...)f2(args[1:]...)
}func f2(args ...interface {}) {for i, v := range args {fmt.Fprintf(os.Stdout, "i = %d %v\n", i, v)}fmt.Fprintf(os.Stdout, "--------------\n")
}func main() {f1(1, "hello", 3.14, main)// 匿名函数 1f := func(i, j int) (result int) { // f 为函数地址result = i+jreturn}fmt.Fprintf(os.Stdout, "f = %v  f(1,3) = %v\n", f, f(1, 3))// 匿名函数 2x, y := func(i, j int) (m, n int) { // x y 为函数返回值return j, i}(1, 9) // 直接创建匿名函数并执行fmt.Fprintf(os.Stdout, "x = %d   y = %d\n", x, y)
}

i = 0 1
i = 1 hello
i = 2 3.14
i = 3 0x4012c0
--------------
i = 0 hello
i = 1 3.14
i = 2 0x4012c0
--------------
f = 0x401690  f(1,3) = 4
x = 9   y = 1

http://blog.csdn.net/eclipser1987/article/details/17396201

回调函数的实现:

package mainimport ("fmt""strconv"
)//声明一个saveLog类型,这个类型其实表示一个函数定义
type saveLog func(msg string)//这个函数的第二个参数是一个函数
//这个函数将一个字符串转换为Int类型,如果失败了,则返回0,并输出错误。
func stringToInt(s string, log saveLog) int64 {if value, err := strconv.ParseInt(s, 0, 0); err != nil {log(err.Error())return 0} else {return value}
}//记录日志的函数实现
func myLog(msg string) {fmt.Println("Find error:", msg)
}//在调用第二个stringToInt的时候会发生运行时的错误输出
func main() {stringToInt("123", myLog)stringToInt("s", myLog)
}

运行结果为:

$ go build func_callback.go
$ ./func_callback
Find error: strconv.ParseInt: parsing "s": invalid syntax

Go各种类型转换及函数的高级用法相关推荐

  1. python用psf函数_Python 嵌套函数(高级用法)

    Python 嵌套函数(高级用法) 一.嵌套函数(高级用法) 1.嵌套函数 函数的嵌套调用是在"函数调用中再调用其他函数".也就是说:函数嵌套允许在一个函数中调用另外一个函数.如下 ...

  2. Shell函数的高级用法

    Shell函数的高级用法 一.函数的定义和使用 1.语法格式 2.如何调用函数 3.示例演示 4.小脚本(nginx守护进程) 二.向函数传递参数 1.Shell中传参 2.Shell中函数调用 3. ...

  3. Python内置函数max()高级用法

    不管是排序还是选取最大值或者最小值,都应该有个规则或者顺序,而平时我们所说的最大值或最小值实际上也是在某种排序规则或顺序下的最大值和最小值.Python内置函数max().min()和sorted() ...

  4. C语言_函数指针高级用法

    什么是函数指针? 函数是计算机程序中一段可执行代码的封装,当程序运行时函数会被加载到内存布局中的代码段位置,这段代码会有一段内存空间,有内存空间就会有地址,这段内存空间的首地址,就是函数的地址 每当我 ...

  5. Python中sorted()函数的高级用法详解

    sorted()函数的作用是对对象进行排序 函数函数格式: sorted(iterable,key,reverse),key参数可传入一个自定义函数 下边通过具体例子说明sorted的具体用法: 一维 ...

  6. Python内置函数int()高级用法

    int()函数常用来把其他类型转换为整数,例如: >>> int(3.2) 3 >>> int(1/3) 0 其实,int是Python内置类型之一,之所以能够当作 ...

  7. offset函数的高级用法_数据验证(数据有效性)结合Offset函数 的综合用法

    #数据验证# 在2013版本以前称为#数据有效性#.数据验证主要用于验证数据的输入的准确性,避免输入非法值以及在输入非法值时能给出提示或警告.可以根据实际需要限制输入范围,提供预设值通过下拉列表选择输 ...

  8. print函数的高级用法(输出到文件,自定义间隔符,强制刷新)

    环境: Python3.6 python命令行输入: help(print) #help() 函数用于查看函数或模块用途的详细说明. 显示如下: >>> help(print) He ...

  9. python函数的高级用法

    传递列表 你经常会发现,向函数传递列表很有用,这种列表包含的可能是名字.数字或更复杂的对象(如字典).将列表传递给函数后,函数就能直接访问其内容.下面使用函数来提高处理列表的效率. 假设有一个用户列表 ...

最新文章

  1. rest-framework之解析器
  2. 活学活用流行的JavaScript库——《JavaScript实战》
  3. setsockopt()函数 参数详解
  4. 诺奖经济学家:中国与世界可找到差异化空间推动合作共赢
  5. sketch-a-net_Adobe XD,Sketch,Figma,InVision-如何在2020年选择最佳设计软件
  6. 统一的Ajax提交封装,一劳永逸好工具(带跨域处理)
  7. 学计算机专业体面吗,2021女生学计算机专业好吗 前景怎么样
  8. Python数据分析:pandas玩转Excel(一)
  9. 边缘设备上的实时AI人员检测:选择深度学习模型
  10. winlogon病毒清除
  11. 《人工智能:计算Agent基础》——3.3 图搜索
  12. centos 打包RPM包 ntopng
  13. 13、TCP Socket与UDP Socket
  14. Pro 了,更强了 — 米家台灯 Pro 评测
  15. 一位非米粉关于小米的深度报告
  16. 亚洲研究院微软笔试题
  17. 多易教育KAFKA实战(3)-java消费者客户端API示例代码
  18. vue分享到qq,qq空间,微信,微博等
  19. SWUST OJ492: 荷兰国旗问题
  20. Django cms 教程五:添加内容

热门文章

  1. 如何使用python编程画图_【Python开发】使用python中的matplotlib进行绘图分析数据...
  2. ❤️六万字《SpringMVC框架介绍—从入门到高级》(建议收藏)❤️
  3. 布尔型Boolean+undefined+null(JS)
  4. 基本结构标签(HTML)
  5. HoloLens 2开发:电脑端PC识别Vuforia
  6. php mvc 实现,php mvc的简单实现
  7. 那些年我们office_那些年,我们的传奇三
  8. AndroidL 开机展示Keyguard锁屏机制初探
  9. 看剧流畅还省电?视频类应用预缓存策略功耗评测详解
  10. Automated Feature Engineering Basics