摘要: 背景:当结构体名的首字母为小写时,这时这个结构体只能在本包使用,而不能被其他包使用, 但是在别的包中又希望可以使用这个结构体。由于go语言中没有构造函数,可以使用工厂模式来解决这个问题。 举例:model包中student结构体首字母为小写,main包中需使用student结构体 student.g 阅读全文
posted @ 2022-03-03 02:20 smile学子 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 1、结构体声明 type 结构体名称 struct{ field type field type } 举例: type Dog struct { Name string Age int Color string } 2、结构体使用 2.1 直接声明 var dog Dog 2.2 {} type D 阅读全文
posted @ 2022-03-03 02:13 smile学子 阅读(88) 评论(0) 推荐(0) 编辑
摘要: map是key-value数据结构,是一种无序的键值对的集合 1、基本语法 var 变量名 map[keytype]valuetype 注意:slice,map还有function不可以作为key,因为这几个没法用==来判断 var a map[string]string var b map[int 阅读全文
posted @ 2022-03-03 01:56 smile学子 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 1、切片 切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用类型的机制 切片的使用和数组类似,如遍历切片,访问切片的元素和求切片长度len(slice)都一样。 切片的长度是可以变化的,因此切片是一个可以动态变化的数组 2、切片的定义 var 切片名 []类型 比如: var a [] 阅读全文
posted @ 2022-03-03 01:16 smile学子 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 数组可以存放多个同一类型数据,数组也是一种数据类型,在Go中,数组是值类型 1、数组的定义 var 数组名 [数组大小] 数据类型 例子: var a [3]int 数组的地址可以通过数组名来获取,如:&a 数组的第一个元素的地址就是数组的首地址 数组各个元素的地址大小间隔,是依据数组的类型来决定的 阅读全文
posted @ 2022-03-03 00:57 smile学子 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 1、Go中引入的处理方式为:defer,panic,recover Go中可以抛出一个panic异常,然后在defer中通过recover捕获这个异常。然后正常处理 func test() { defer func() { if err := recover(); err != nil { // r 阅读全文
posted @ 2022-03-03 00:50 smile学子 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 1、len() func len(v Type) int 函数len返回v的长度 数组:v中元素的数量 数组指针:*v中元素的数量(v为nil时panic) 切片、映射:v中元素的数量;若v为nil,len(v)即为零 字符串:v中字节的数量 通道:通道缓存中队列(未读取)元素的数量;若v为 nil 阅读全文
posted @ 2022-03-03 00:23 smile学子 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 1、获取当前时间的方法 now := time.Now() // now的类型就是time.Time 2、获取到其他的日期信息 func main() { now := time.Now() // now的类型就是time.Time fmt.Println("当前年:", now.Year()) f 阅读全文
posted @ 2022-03-03 00:14 smile学子 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1、统计字符串的长度,按字节len(str) // golang的编码统一为utf-8,(ascli的字符(字母和数字)占一个字节,汉字占三个字节) str := "hello上海" fmt.Println("str len=", len(str)) 输出: str len= 11 2、字符串遍历, 阅读全文
posted @ 2022-03-03 00:07 smile学子 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 1、defer语句 延时机制,在函数中,经常需要创建资源(比如:数据库连接、文件句柄、锁等),为了在函数执行完毕后,及时释放资源,使用defer a. 当执行defer时,暂时不执行,会将defer后面的语句压入到独立的栈 b. 当函数执行完毕后,再从defer栈,按照先入后出的方式出栈,执行 阅读全文
posted @ 2022-03-02 23:49 smile学子 阅读(22) 评论(0) 推荐(0) 编辑