golang
Mossil
这个作者很懒,什么都没留下…
展开
-
Go-map集合
map集合是一种无序的key-value的数据结构,在Go中的map是引用类型,必须初始化才能使用 map是一种无序的键值对集合,可以通过key来快速的检索value,key类似索引,指向数据的值。 我们可以像数组和切片一样迭代map,但因为其是无需的,所以我们无法决定它的返回顺序 定义格式:map[KeyType]ValueType,KeyType:键类型,ValueType:值类型,map初始值为nil,需要使用make()函数来分配内存,make(map[KeyType]ValueType, [ca.原创 2021-12-15 16:48:51 · 485 阅读 · 0 评论 -
Go-数组与切片
1. 数组 数组是同一类型数据的固定长度的序列 数组的定义格式为 var 数组名[长度]类型 数组长度是其类型的一部分,一旦定义,不能更改,例如var a[5]int和var a[8]int这两个数组不是同一类型 数组使用下表访问,第一个元素从0开始,最后一个为长度-1,若访问越界会Panic 数组是值类型,若赋值或当成参数传递会复制整个数组,若改变副本值原始数组不会发生改变 支持 “==“或”!=” 操作符,因为内存总是被初始化过的 数组指针为*[length]T 指针数组为[length]*T 可以使原创 2021-11-25 18:20:43 · 169 阅读 · 0 评论 -
Go-指针
&:取地址 *:根据变量地址取值 1. 指针地址:每个变量在运行都有一个地址,这个地址代表变量在内存中的地址,Go语言中使用&字符放在变量前面对变量进行“取地址”操作 2. 指针类型:Go语言中的值类型(int、float、bool、string、array、struct)都有对应的指针类型,如:*int、*int64、*string等 3. 变量取值:在对普通变量使用&操作符取地址后会获得这个变量的指针,然后可以对指针使用*操作,也就是指针取值 4. 空指针:当一个指针被定义后.原创 2021-11-19 17:10:40 · 409 阅读 · 0 评论 -
Go-for循环
在Go中for循环有三种呈现形式 for init; condition; post { } for condition { } for { } init:一般是赋值表达式,给控制变量赋初始值;condition:关系表达式或逻辑表达式,循环控制条件;post:一般为赋值表达式,给控制变量增量或减量 str := "abc" for i := 0; i < len(str); i++{ fmt.Println(str[i]) } strLen := len(str) for strLen >原创 2021-11-19 16:51:57 · 159 阅读 · 0 评论 -
Go-流程控制
1. if 在Go中,if语法有以下几个特点需要注意 可以省略条件表达式的括号 初始化语句可以定义代码块局部变量 代码块左括号必须在条件表达式尾部 不支持类似PHP中的三目运算符 // if条件语句格式如下: if 布尔表达式 { // 代码块 } if str := "abc";i > 0 { fmt.Println(str[0]) } else if i < 0 { fmt.Println(str[1]) } else { fmt.Println(str[2]) } 2. s原创 2021-11-19 16:39:46 · 85 阅读 · 0 评论 -
Go- import和package的使用
在Go中使用包package来管理定义模块,可以使用import关键字来导入使用。 如果导入的是go自带的包,则会去安装目录$GOROOT/src按包路径加载,如fmt包 如果是我们go get安装或自定义的包,则会去$GOPATH/src下加载 package的定义 package的存放位置是以$GOPATH/src作为根目录,然后灵活的按照目录去组织,而且包名需与最后一级目录名一致。 import的定义 普通导入就是按照加载机制,将要使用的包导入进来,然后使用 packageName.Meth.原创 2021-11-17 18:31:47 · 875 阅读 · 0 评论 -
Go-init函数与main函数
1. main函数 func main() { // 函数体 } Go语言程序的默认入口函数,main函数只能用于main包中,且只能定义一个,类似PHP框架中的index.php 2. init函数 Go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性,用途类似于PHP中的__construct魔术方法 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等 每个包可以拥有多个init函数 包的每个源文件也可以拥有多个init函数 同一个包中多个原创 2021-11-17 18:16:50 · 287 阅读 · 0 评论 -
Go-类型声明及作用域
1. 类型的作用域 声明在函数内部,是函数的本地值,类似private 声明在函数外部,是对当前包可见(包内所有.go文件都可见)的全局值,类似protect 声明在函数外部且首字母大写是所有包可见的全局值,类似public 2. 几种声明方式 var 声明变量,格式:var 变量名 变量类型 const 声明常量,格式:const identifier [type] = value,iota是Go中一个特殊常量,可以认为是一个可以被编译器修改的常量,iota是Go语言的常量计数器,只能在常量的表达式原创 2021-11-17 18:03:28 · 170 阅读 · 0 评论 -
Go-类型强转
在Go语言中不存在隐式的类型转换,即自动转换,如PHP一样,但是在Go中所有的类型转换都必须显式的声明 格式:valueOfTypeB = typeB(valueOfTypeA)(类型 B 的值 = 类型 B(类型 A 的值)) var a int = 100 var b int8 = 100 c := a + int(b) // 正确写法 d := int8(a) + b // 正确写法 fmt.Println(c) fmt.Println(d) e := a + b // 错误写法 fmt.Prin.原创 2021-11-17 17:32:49 · 2456 阅读 · 0 评论 -
Go-常见数据类型之字符与字符串
1. 字符 Go语言中没有专门的字符类型,若存储单个字符(字母)一般使用byte类型来保存 字符只能使用单引号包裹,不能使用双引号,双引号包裹的是字符串 var s byte = 's' fmt.Println(s) // 输出115 fmt.Printf("%c", s) // 输出s 以上案例说明:当我们直接输出byte值时,就是输出了对应字符的ASCII码值,若我们希望输出对应字符,需要使用格式化输出 Go语言的字符使用UTF-8编码,英文字母占一个字符,汉字占三个字符 Go语言的字符的本质是原创 2021-11-17 16:04:08 · 372 阅读 · 0 评论 -
Go-常见类型之浮点型
类型 描述 floa32 32位浮点数 floa64 64位浮点数 浮点型在机器中的存放形式大致为:浮点数=符号位+指数位+尾数位,尾数位可能丢失造成精度损失,如下所示 var a float32 = 1.97897897356 var b float64 = 1.97897897356 fmt.Println(a) // 1.978979 fmt.Println(b) // 1.97897897356 以上案例说明float64的精度比float32的精度要高,所以当我...原创 2021-11-17 15:28:19 · 202 阅读 · 0 评论 -
Go-常见数据类型之整型
在Go语言中变量分为有符号和无符号两种类型 有符号:int int8 int16 int32 int64 无符号:unit unit8 uint16 uint32 uint64 在保证程序正确运行的情况下,应该尽量选择占用空间小的数据类型,可以使用fmt.Printf("%T", var_name)输出变量类型,unsafe.Sizeof(var_name)查看变量占用字节 类型 描述 范围 实际范围 uint 32位或64位 uint8 无符号8位整型 0~2^8-原创 2021-11-17 15:02:36 · 112 阅读 · 0 评论 -
Go-初识
1. Go语言的特点 自动立即回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 2. Go的安装 官方下载地址:https://golang.google.cn/dl/ Linux A. 下载对应的二进制包 B. 将下载的二进制包解压至 /usr/local目录 C. 将 /usr/local/go/bin 目录添加至PATH环境变量 D. 使用go env命令查看是否安装成功 tar -C /usr/local -zxvf go1.17.2.l原创 2021-10-27 17:05:44 · 100 阅读 · 0 评论