![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
毕业有1000个offer
梦想成为大厂程序猿
展开
-
golang学习笔记(反射)
反射Go语言中的反射是由 reflect 包提供支持的,它定义了两个重要的类型 Type 和 Value 任意接口值在反射中都可以理解为由 reflect.Type 和 reflect.Value 两部分组成,并且 reflect 包提供了 reflect.TypeOf 和 reflect.ValueOf 两个函数来获取任意对象的 Value 和 Type。获取类型和namem := Monster{ Name:"玉兔精", Age:20, Sal: 888.9, Sex: "fema原创 2021-08-16 22:58:46 · 136 阅读 · 0 评论 -
golang学习笔记(error + 单元测试)
异常Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型示例一package mainimport ( "errors" "fmt")func Test(a,b int) (res int,err error) { err = nil if b == 0 { err = errors.New("b不能为零") //可以在这加一些处理方式 }else { res = a/b } return}func main() { //原创 2021-08-15 22:20:11 · 351 阅读 · 0 评论 -
golang基于控制台的增删改查系统
客户结构体package modelimport "fmt"//客户结构体type Customer struct { Id int Name string Gender string Age int Phone string Email string}//工厂模式创建func NewCustomer(id int,name string,gender string,age int,phone string,email string) Customer { return C原创 2021-08-15 18:17:20 · 103 阅读 · 0 评论 -
golang学习笔记(指针)
newnew(T) 为一个 T 类型新值分配空间并将此空间初始化为 T 的零值,返回的是新值的地址,也就是 T 类型的指针 *T,该指针指向 T 的新分配的零值.new要点内置函数 new 分配空间.传递给new 函数的是一个类型,不是一个值.返回值是 指向这个新分配的零值的指针.makemake(T, args) 返回的是初始化之后的 T 类型的值,这个新值并不是 T 类型的零值,也不是指针 *T,是经过初始化之后的 T 的引用.make 只能用于 slice,map,channel 三.原创 2021-08-15 00:12:03 · 153 阅读 · 0 评论 -
golang学习笔记(列表+ring+约瑟夫环)
列表listpackage mainimport ( "container/list" "fmt")func showList(list1 list.List) { for it := list1.Front();it != nil;it = it.Next(){ fmt.Print(it.Value,"\t") } fmt.Println()}func main() { myList := list.New()//列表可以装载不同类型 for i := 0;原创 2021-08-14 20:33:39 · 126 阅读 · 0 评论 -
golang学习笔记(结构体+json)
结构体结构体等价关系,只有==和!=关系,没有> < 关系,只有字段和属性完全相同,才等价,并且属于同一类型结构体,不同结构体不能比较,每一个不同的指针结构体的地址均不同type UserInfo struct { Name string Age int Height float32 EduSchool string Hobby []string MoreInfo map[string]interface{}}//工厂模式:生成对象func NewUserInfo(name原创 2021-08-14 11:13:11 · 541 阅读 · 0 评论 -
golang学习笔记(数组练习+排序算法)
数组逆置func main() { //数组逆置 names := [...]string{"我","是","好人"} for i := 0; i < len(names)/2; i++ { names[i], names[len(names)-i-1] = names[len(names)-i-1],name[i] } for i := 0; i < len(names); i++ { fmt.Println(names[i]) }}数组冒泡排序原创 2021-08-13 22:13:58 · 121 阅读 · 0 评论 -
go语言学习笔记(⑤,时间函数,字符串api,正则)
时间函数时间和日期相关函数,需要导入 time 包获取日期时间func main() { now := time.Now()//获取当前时间 fmt.Println(now)//2021-08-13 10:51:26.5364407 +0800 CST m=+0.003191501 fmt.Println(now.Year())//2021 fmt.Println(now.Month())//August fmt.Println(now.Date())//2021 August 13原创 2021-08-13 17:37:01 · 141 阅读 · 0 评论 -
go语言学习笔记(三)
值类型boolint(32 or 64), int8, int16, int32, int64uint(32 or 64), uint8(byte), uint16, uint32,uint64float32, float64stringcomplex64, complex128array – 固定长度的数组引用类型slice(切片)mapchan字符串len()获取字符串长度声明var str stringstr = “hello world”str := “你好原创 2021-08-12 22:37:07 · 152 阅读 · 0 评论 -
golang学习笔记(二 变量)
变量声明变量的一般形式是使用 var 关键字:var name type其中,var 是声明变量的关键字,name 是变量名,type 是变量的类型var 的变量声明还有一种更为精简的写法,例如:hp := 100这是Go语言的推导声明写法,编译器会自动根据右值类型推断出左值的对应类型基本类型boolstringint,int8,int16,int32,int64float32,float64complex64,complex128当一个变量被声明之后,系统自动赋予它该类型的零值原创 2021-08-12 22:13:07 · 105 阅读 · 2 评论 -
go语言学习笔记(1)
GO是编译型语言优点语法简单并发内存分配垃圾回收静态链接标准库golang环境配置下载地址:https://golang.google.cn/dl/widows直接一路下一步编辑器goland(建议)vscodeliteIDE项目工程结构src :放置项目和库的源文件pkg :防止编译后的包和库文件bin : 编译后 的可执行文件命令源文件:如果一个 Go 源文件被声明属于 main 包,并且该文件中包含 main 函数,则它就是命令源码文件。命令源文件属于原创 2021-08-12 21:51:02 · 104 阅读 · 0 评论