Go语言程序设计
幸福小码农
这个作者很懒,什么都没留下…
展开
-
Go语言程序设计——布尔与数值类型
一、布尔值 Go语言中的布尔值有两个,一个是true一个是false。 二、数值类型 1、基础 每一个数值类型都不同,这意味着我们不能在不同的类型之见进行二进制数值运算或者比较操作。无类型的数值常量可以兼容表达式中任何类型的数值,因此我们可以直接将一个无类型的数值常量与另一个数值做加法,或进行比较。 代码举例说明 func main() { a := int32(1) b := int64(2...原创 2018-11-03 20:07:37 · 400 阅读 · 0 评论 -
Go语言程序设计——集合类型
一、值、指针和引用类型。 值在传递给函数或者方法的之后会被覆盖一次。这对于数字类型或者布尔类型来说是非常廉价的,因为这样的字节只占1~8个字节。 按值传递字符串也是非常廉价的,因为Go语言中字符串是不可变的,Go语言编译器会将传递过程进行安全优化,因此无论传递字符串长度多少,实际传递数据量都会非常小。64位计算机16字节,32位机器8字节。 Go语言数组是按值传递的,因此传递一个数组代价非常大。幸...原创 2018-11-11 20:55:26 · 563 阅读 · 0 评论 -
重新理解Go切片
slice参数 本来写一个堆排序,使用了golang的slice来做堆,可是发现在pop数据的时候,切片不改变。进而引发了golang函数切片的参数,是传值还是传引用呢?我们知道slice相比array是引用类型。那么直觉上告诉我们如果函数修改了参数的切片,那么外层的切片变量也会变啦。 func main() { slice := []int{0, 1, 2, 3} fmt.Printf("s...转载 2019-01-08 22:17:26 · 195 阅读 · 0 评论 -
用“背包”去理解Go语言中的闭包
在函数编程中经常用到闭包。闭包是什么,它是怎么产生的及用来解决什么问题呢。给出字面的定义先:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)。这个从字面上很难理解,特别对于一直使用命令式语言进行编程的程序员们。本文将结合实例代码进行解释。 函数是什么 地球人都知道:函数只是一段可执行代码,编译后就“固化”了,每个函数在内存中只有一份实例,得到函数的入口点便可以执行函数了。...原创 2019-01-14 18:09:17 · 178 阅读 · 1 评论