Golang语言快速上手到综合实战笔记(Go语言、Beego框架、高并发聊天室、爬虫)
1.go get 本质是:代码管理工具(git) + go install
2.struct
go 语言没有private,public,protected 这样的关键字 要使某个符号对其他包package 可见(即可以访问),需要将该符号定义为以大写字母开头
package main
import "fmt"
type Person struct {
name string
age int
}
type Student struct {
Person //匿名字段,默认包含person中所有字段
sex string
}
func main() {
//person:=Person{"zhangsan",25} //{zhangsan 25}
//person := Person{age: 22, name: "lxw"}
//stu1 := Student{Person{name: "test", age: 11}, "男"}
stu1 := Student{Person{"test", 113}, "男"}
//fmt.Printf("%v", person)
fmt.Printf("%v", stu1.Person.age)//113
fmt.Printf("%v", stu1.name)//test
fmt.Printf("%v", stu1.age)//113
fmt.Printf("%v", stu1.sex)//男
}
3.面向对象
三.常见问题
go: cannot use path@version syntax in GOPATH mode问题解决
问题:
执行go get github.com/golang/protobuf/protoc-gen-go@v1.3.2时报错
go get github.com/golang/protobuf/protoc-gen-go@v1.3.2
go: cannot use path@version syntax in GOPATH mode
解决:需要开启 GO111MODULE,默认是 auto,
打开.zshrc,(注意:查看下自己当前用的是哪个shell,是bash的话需要.bash_profile中编辑)
添加 export GO111MODULE=on 即可。修改完记得source
export GO111MODULE=on
source
source ~/.zshrc
原因:
go mod 可以通过GO111MODULE来控制是否启用,GO111MODULE有一下三种类型。
on 所有的构建,都使用Module机制
off 所有的构建,都不使用Module机制,而是使用GOPATH和Vendor
auto 在GOPATH下的工程,不使用Module机制,不在GOPATH下的工程使用
赞赏码
非学,无以致疑;非问,无以广识