摘要:
变量和内存地址 每个变量都有内存地址,可以说通过变量来操作对应大小的内存 var a int32 a = 100 fmt.Printf(“%d\n”, a) fmt.Printf(“%p\n”, &a) 通过&符号可以获取变量的地址 普通变量存储的是对应类型的值,这些类型就叫值类型 var b in 阅读全文
摘要:
下列程序输出什么? package main import "fmt" func main() { var sa = make([]string, 5, 10) for i := 0; i < 10; i++ { sa = append(sa, fmt.Sprintf("%v", i)) } fmt 阅读全文
摘要:
切片定义 切片是基于数组类型做的一层封装。它非常灵活,可以自动扩容。 切片初始化, a[start:end]创建一个包括从start到end-1的切片。 切片初始化方法2 数组切片的基本操作 切片基本操作a) arr[start:end]:包括start到end-1(包括end-1)之间的所有元素b 阅读全文
摘要:
引言 我们都知道redis性能很高,单机版的qps可以达到10万+,但是即使如此我们也不会在生产环境去搭建单机版本的redis,原因如下: 1、因为存在单点,如果进程挂掉或者机器宕机,redis不可用 2、redis的读和写全在一台机器上,无法满足读多写少的场景。 主从流程架构 Redis虽然读取写 阅读全文
摘要:
数组的定义和 初始化 数组是同一类型的元素集合 Go中数组下标从0开始,因此长度为n的数组下标范围:[0,n-1] 整数数组中的元素默认初始化为0,字符串数组中的元素默认初始化为" " 数组初始化 数组的长度是类型的一部分 var a [3]int a[0] = 10 a[1] = 20 a[2] 阅读全文
摘要:
匿名函数 1. 函数也是一种类型,因此可以定义作为一个函数类型的变量 2. 匿名函数即没有名字的函数 注意defer 和匿名函数的使用 闭包 一个函数和与其相关的引用环境组合组成的实体 个人认为go中的闭包和python中的闭包概念一样 都是 一个外层函数 嵌套 一个内层函数 内层函数包含对外层函数 阅读全文
摘要:
1.全局变量,在程序整个生命周期有效 比如: test.go 中 我们定义 了 a 作为全局变量,那么在这个程序中任何地方都可以调用a, 这个 2. 局部变量,分为两种:1)函数内定义,2)语句块内定义。 举例 可见性 可见性,包内任何变量或函数都是能访问的。包外的话,首字母大写是可导出的,能够被其 阅读全文