go语言的一些笔记 | 青训营笔记

67 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记

1.     闭包,返回一个函数,函数里再传参数

2.     Defer用于注册延迟调用,也可以用做资源管理,后进先出的工作,关闭文件句柄,锁资源释放,数据库连接释放。

3.定义语法

var ptr[MAX]*int;表示数组里面的元素的类型是指针类型

实例演示

package main
import "fmt"
const MAX int = 3
func main() {
a := []int{1,3,5}
var i int
var ptr [MAX]*int
fmt.Print1n(ptr)  //这个打印出来是[<nil> <nil> <nil>]
for i = 0; i < MAX; i++ {
    ptr[i] = &a[i]
}
for i = 0; i < MAX; i++ {
    fmt.Printf("a[%d] = %d\n",i,*ptr[i])  //*ptr[1]就是打印出相关指针的值了
}

3.     类型定义和类型别名

4.     结构体定义

5.     New可以创建一个结构体指针var p_person = new(Person),可以省略星号, image.png 6.     方法,Go中的方法,是一种特殊的函数,定义于stuct之上(与struct关联、绑定),被称为struct的接受者(receiver)。通俗的说就是有接受者的函数

type mytype struct{}
func (recv mytype) my_method(para) return_type {}
func (recv *mytype) my _method(para) return_type {)

mytype:定义一个结构体 recv:接受该方法的结构体(receiver) my_method:方法名称 para:参数列表 return_type:返回值类型 从语法格式可以看出,一个方法和一个函数非常相似,多了一个接受类型 9. 接口像是一个公司里面的领导,他会定义一些通用规范,只设计规范,而不实现规范。 go语言的接口,是一种新的类型定义,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。语法格式和方法非常类似。 go语言的结构体和接口这些东西还是对我十分困扰的,和我前面学的python语法有比较大的区别,学习的时候需要重新去理解。