02 2023 档案
摘要: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
阅读全文
摘要:package main import "fmt" var x = 100 func f1() { name := "wanghuanqi" fmt.Println(x, name) } func main() { f1() //fmt.Println(name) } 函数中查找变量的顺序 先在函数
阅读全文
摘要:go语言中的defer语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按defer定义的逆序进行执行,也就是说,先被defer的语句最后被执行,最后被defer的语句最先被执行 举个例子 正常声明一个函数 import "fmt" func deferdemo
阅读全文
摘要:很重要go语言中用的最多的就是函数 定义一个标准函数 func 函数名(函数传参变量)(函数返回值变量) { 函数体 return 返回值 } 定义一个求和的函数 package main import "fmt" //定义一个求值的函数 func sum(x int, y int) (z int)
阅读全文
摘要:go语言中提供映射关系容器为map,其内部使用散列表 hash 实现。 map是一种无序的基于key-value的数据结构,go语言中的map是引用类型,必须初始化才能使用。 map定义 go语言中map的定义语法如下: map[keyType]valueType 简单的map package ma
阅读全文
摘要:go语言中不存在指针操作,只需记住两个符号 &: 取地址 *: 根据地址取值 简单的指针应用 package main import "fmt" func main() { a := 18 //根据值取指针 fmt.Println(&a) //返回的数是个16进制数 //根据指针取值 p := &a
阅读全文
摘要:package main import ( "fmt" "sort" ) func main() { a1 := make([]int, 5, 10) a1 = []int{6, 73, 5, 7, 8, 22, 3} fmt.Println(a1) sort.Ints(a1) fmt.Printl
阅读全文
摘要:定义一个切片 package main import "fmt" func main() { a1 := []int{1, 2, 3, 4} a2 := a1 fmt.Printf("a1:=%d\na2:=%d", a1, a2) } go语言内建的copy()函数可以迅速地将一个切片数据复制到另
阅读全文
摘要:声明一个切片 package main import "fmt" func main() { s1 := []string{"天津", "北京", "上海"} fmt.Printf("s1:=%v,len(%d),cap(%d)", s1, len(s1), cap(s1)) } 使用append方
阅读全文
摘要:切片就是一个可以没有长度限制的数组,很灵活,支持自动扩缩容,它是基于数组类型做的一层封装 它的内部结构包括地址,长度和容量。切片一般用于快速操作一块数据集合。 定义一个切片 //var 切片名 []切片类型 package main import "fmt" func main() { var a1
阅读全文
摘要:数组在go中用的不是很多,比较常用的还是切片 声明一个数组 package main import "fmt" func main() { var a1 [3]bool var a2 [4]bool fmt.Printf("a1:%T,a2:%T", a1, a2) } 注意在go中数组长度是数组类
阅读全文
摘要:算数运算符 注意++(自增)和- -(自减)在go语言中是单独的语句,并不是运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 关系运算符 运算符 描述 == 判断左右两边是否相等是返回true否则返回false ! = 判断左边是否不等于右边是返回true否则返回false >
阅读全文
摘要:大量判断的简化switch 用于简化大量的判断,一个变量和具体的值比较 基础款 package main import "fmt" func main() { var n = 3 switch n { case 1: fmt.Println("大拇指") case 2: fmt.Println("食
阅读全文
摘要:条件判断if 简单的if判断 package main import "fmt" func main(){ age := 18 if age >=18 { fmt.Println("呦呵长大了") }else { fmt.Println("还没长大") } } 多分支if package main
阅读全文