随笔分类 - golang学习
摘要:time.Time类型表示时间。我们可以通过time.Now()函数获取当前的时间对象,然后获取时间对象的年月日时分秒等信息。 go 的time.now就是你当前所处时区的时间 package main import ( "fmt" "time" ) func main() { now := tim
阅读全文
摘要:os.OpenFile()函数能够以指定的模式打开文件,从而实现文件写入相关功能 核心代码: func OpenFile(name string, flag int,perm FileMode) (*File, error) { ... } 其中: name:要打开的文件名 flag:打开文件的模式
阅读全文
摘要:所有跟文件相关的操作都用os模块 通过数组做缓冲来读取文件 这个自己决定读取多少内容 package main import ( "fmt" "os" ) func main() { fileObj, err := os.Open("./main.go") fmt.Println(err) if e
阅读全文
摘要:go语言的代码是放到.go文件,我们可以通过包把.go文件组织起来 包的导入默认是从gopath/src/下开始找 实验 我们定义一个函数再在其他路径进行调用 定义一个函数 package calc //一个简单的求和的函数 func Andsum(a, b int) int { return a
阅读全文
摘要:就是没有起名的接口,通常定义成下面的格式 interface{} //空接口 所有的类型都实现了空接口也就是任意类型的变量都能保存到空接口中 例子 package main import "fmt" func main() { var m1 map[string]interface{} m1 = m
阅读全文
摘要:一个变量如果实现了接口规定的所有的方法,那么这个变量就实现了这个接口,可以称为这个接口类型的变量 把接口当作变量使用 type 接口名称 interface{ 方法函数名() } //var一个变量 var ss specker 变量名 = 参数 fmt.Println(变量名) 例 package
阅读全文
摘要:接口是一种类型 接口用来处理什么问题? 比如一个网上上传可能使用支付宝,微信,银联等方式去在线支付,我们能不能吧它们当成“支付方式”来处理呢? 比如三角形,四边形,圆形都能计算周长和面积,我们能不能把它们当作"图形"来处理呢? 比如销售,行政,程序员都能计算月薪,我们能不能把他们当成"员工"来处理呢
阅读全文
摘要:json是js中的数据表示方法,后面为了标准,同时json也很方便就前后端都在使用 把结构体转换为json格式字符串 序列化 package main import ( "encoding/json" "fmt" ) type person struct { //此处要使用标识符,标识符开头大写,只
阅读全文
摘要:结构体模拟实现其他语言中的“继承” package main import "fmt" type animal struct { name string } func (a animal) move() { fmt.Printf("%v 会动\n", a.name) } type dog struc
阅读全文
摘要:和json很像 package main import "fmt" type address struct { province string city string } type person struct { name string age int addr address } func mai
阅读全文
摘要:package main import ( "fmt" "os" ) type student struct { name string id int64 } type studenMgr struct { allStudent map[int64]student } func newStudent
阅读全文
摘要:package main import ( "fmt" "os" ) /* 函数版学生管理系统 写一个系统能够查看、新增学生、删除学生 */ type student struct { //创建一个学生对象 name string age int id int64 } // 用于存储学生信息 var
阅读全文
摘要:返回一个结构体变量的函数 这是一种面向对象的编程方法,go语言不是面向对象的编程语言它是面向接口的编程语言,但是可以通过结构体和函数来实现面向对象的功能 简单的例子,定义一个人的构造函数(人这个对象) package main import "fmt" type person struct { na
阅读全文
摘要:结构体也是一种类型,自定义结构体类型是属于结构体这个类型 结构体可以定义一个多维度的数据进行封装组成一个整体就是结构体 结构体的定义 使用type和struct关键字来定义结构体,具体代码格式如下: type 类型名 struct { 字段名 字段类型 字段名 字段类型 .... } 简单的类型 定
阅读全文
摘要:自定义类型 格式 type 自定义类型 类型名 例子 package main import "fmt" //自定义类型和类型别名 //type 后面跟的是类型 type myint int func main() { var n myint n = 100 fmt.Printf("%T %v",
阅读全文
摘要:就是函数自己调用自己 举个例子,阶乘: package main import "fmt" // 3! = 3*2*1 = 3*2! // 4! = 4*3*2*1 = 4*3! // 5! = 5*4*3*2*1 = 5*4! func f1(n int) int { if n <= 1 { re
阅读全文
摘要:标准库fmt提供了以下几种输出相关函数 Print Print系列函数会将内容输出到系统的标准输出,区别在于Print函数直接输出内容,Printf函数支持格式化输出字符串,Println函数会在输出内容的结尾添加一个换行符 通用占位符 占位符 说明 %v 值的默认格式表示 %+v 类似%v,但输出
阅读全文
摘要:内置函数 介绍 close 主要用来关闭channel len 用来求长度,比如string,array,slice,map,channel new 用来分配内存,主要用来分配值类型,比如int,struct。返回指针 make 用来分配内存,主要分配引用类型,比如chan,map,slice pa
阅读全文
摘要:闭包就是把别人写好的函数进行封装到自己函数中,有时候别人写的函数你需要引用但是部分函数的变量类型没法直接引用这时就需要闭包来处理 package main import "fmt" //例如这里是别人写好的函数 func intadd(x, y int) { fmt.Println(x + y) }
阅读全文
摘要:函数也是一种变量类型,不同返回值变量类型不同函数变量类型也不同 package main import "fmt" func f1() { fmt.Println("hello wwww") } func f2() int { return 10 } func main() { a1 := f1 a
阅读全文