随笔分类 -  golang-基础教程

摘要:Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 类型别名与自定义类型 自定义类型 Go语言中可以使用type关键字来定义自定义类型。 //NewInt是一种新的类型,具有int类型的特性。 type NewInt int 阅读全文
posted @ 2020-04-02 15:14 溶洞 阅读(178) 评论(0) 推荐(0)
摘要:指针和地址的区别 地址:内存地址(用字节来描述的内存地址)指针:指针是带类型的,int类型指针与string类型指针是完全不同的!指针是存储另一个变量,内存地址的变量。 &和* &:取内存地址*:根据地址来取值 对变量进行取地址(&)操作,可以获得这个变量的指针变量。指针变量的值是指针地址。对指针变 阅读全文
posted @ 2020-04-02 14:00 溶洞 阅读(116) 评论(0) 推荐(0)
摘要:函数定义 Go语言中定义函数使用func关键字。 func 函数名(参数)(返回值){ 函数体 } 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见后文)。参数:参数由参数变量和参数变量的类型组成,多个参数之间使用,分隔。返回值:返回值 阅读全文
posted @ 2020-04-02 10:55 溶洞 阅读(142) 评论(0) 推荐(0)
摘要:使用的"math/rand"包。基本随机数 a := rand.Int() b := rand.Intn(100) //生成0-99之间的随机数 fmt.Println(a) fmt.Println(b) 可以生成随机数,但是数值不会变。生成可变随机数 //将时间戳设置成种子数 rand.Seed( 阅读全文
posted @ 2020-04-01 19:48 溶洞 阅读(723) 评论(0) 推荐(0)
摘要:GOPATH在不同平台上的路径  GO项目结构 在进行Go语言开发的时候,我们的代码总是会保存在GOPATH/src目录下。在工程经过gobuild、goinstall或goget等指令后,会将下载的第三方包源代码文件放在GOPATH/src目录下。在工程经过gobuild、goinstall或g 阅读全文
posted @ 2020-04-01 19:43 溶洞 阅读(127) 评论(0) 推荐(0)
摘要:标识符与关键字 标识符 人为定义有特殊意义的词,Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 关键字 关键字是指编程语言中预先定义好的具有特殊含义的标识符。GO语言中有25个关键字: break default func interface select case defe 阅读全文
posted @ 2020-04-01 19:37 溶洞 阅读(180) 评论(0) 推荐(0)
摘要:基本数据类型 Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。整形获取对象的长度的内建len()函数返回的长度可以根据不同平台的字节长度进行变化。打印时可以用%d打印八进制/十六进制八进制以0开头,使用%o打印十六 阅读全文
posted @ 2020-04-01 19:08 溶洞 阅读(165) 评论(0) 推荐(0)
摘要:GO流程控制 Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,不常用,属于扩展类的流程控制。 if else if基本写法 if 表达式1 { 分支1 } else if 表达式2 { 分支2 } else{ 分支3 } Go语言规定与i 阅读全文
posted @ 2020-04-01 17:12 溶洞 阅读(127) 评论(0) 推荐(0)
摘要:值类型 值类型包括基本数据类型,int,float,bool,string,以及数组和结构体(struct)。注意:sync.WaitGroup 对象是值类型,不是一个引用类型值类型变量声明后,不管是否已经赋值,编译器为其分配内存,此时该值存储于栈上。值类型的默认值: var a int //int 阅读全文
posted @ 2020-04-01 12:08 溶洞 阅读(1105) 评论(0) 推荐(1)
摘要:数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1,访问越界(下标在合法范围之外) 阅读全文
posted @ 2020-04-01 10:11 溶洞 阅读(308) 评论(0) 推荐(0)
摘要:Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。数组定义:var 数组变量名 [元素数量]T var a1 [3]int //定义一个长度为3且存放int类型的数组 var a2 [2]string //定义一个长 阅读全文
posted @ 2020-03-31 19:52 溶洞 阅读(301) 评论(0) 推荐(0)
摘要:切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一个引用类型(直接引用的内存地址),它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。切片是引用类型,不支持直接比较,只能和nil比较! 得到切片的三种方式: 阅读全文
posted @ 2020-03-31 18:13 溶洞 阅读(266) 评论(0) 推荐(0)
摘要:Go语言的测试技术是相对低级的。它依赖一个 go test 测试命令和一组按照约定方式编写的 测试函数,测试命令可以运行这些测试函数。编写相对轻量级的纯测试代码是有效的,而且它很容易延伸到基准测试和示例文档。 go test 编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或 阅读全文
posted @ 2020-03-31 17:58 溶洞 阅读(349) 评论(0) 推荐(0)
摘要:模板 一个模板是一个字符串或一个文件,里面包含了一个或多个由双花括号包含的{{action}}对象。大部分的字符串只是按面值打印,但是对于actions部分将触发其它的行为。每个actions都包含了一个用模板语言书写的表达式,一个action虽然简短但是可以输出复杂的打印值,模板语言包含通过选择结 阅读全文
posted @ 2020-03-31 15:21 溶洞 阅读(1274) 评论(0) 推荐(0)
摘要:Go语言内置的flag包实现了命令行参数的解析。 os.Args os.Args是一个[]string类型。获取命令参数示例: func main() { if len(os.Args) > 0{ for index,args := range os.Args{ fmt.Printf("args[% 阅读全文
posted @ 2020-03-06 10:53 溶洞 阅读(155) 评论(0) 推荐(0)
摘要:Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换。 strconv包 strconv包实现了基本数据类型与其字符串表示的转换,官方文档中文版。 string与int类型转换 Atoi() 将字符串类型的整数转换为int类型。 func Atoi(s string) (i int, 阅读全文
posted @ 2020-03-05 19:03 溶洞 阅读(275) 评论(0) 推荐(0)
摘要:获取文件信息 os.Stat()函数,返回fileInfo和err信息。 func main() { fileInfo, err := os.Stat("xx/test.txt") if err != nil { fmt.Println("get info err", err) return //将 阅读全文
posted @ 2020-03-05 18:57 溶洞 阅读(259) 评论(0) 推荐(0)
摘要:时间类型 time.Time类型表示时间。 //时间类型 func timeDemo() { now := time.Now() fmt.Println(now) //2019-04-20 13:52:35.226397 +0800 CST m=+0.000336111 fmt.Println(no 阅读全文
posted @ 2020-03-05 16:23 溶洞 阅读(272) 评论(0) 推荐(0)
摘要:General(通用占位符)  Integer整形  Integer width(指定长度的整型,以5为例)  Float(浮点数)  String(字符串)  String Width (指定长度的字符串,以5为例)  Struct(结构体)  Boolean(布尔值)  Poin 阅读全文
posted @ 2020-03-05 15:35 溶洞 阅读(159) 评论(0) 推荐(0)
摘要:Go 语言内置的运算符有: 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 算数运算符  关系运算符  逻辑运算符  位运算符  赋值运算符  阅读全文
posted @ 2020-03-05 15:30 溶洞 阅读(86) 评论(0) 推荐(0)