Go基础之封装Go 结构体及常用命令

本文介绍了Go语言中的结构体封装,强调Go不支持继承和多态,结构体命名遵循CamelCase规则,并说明了结构体方法的定义。此外,还概述了Go语言的常用命令,如`build`、`install`、`get`和`test`等,以及它们的功能和使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Go语言仅支持封装,不支持继承/多态。

1. Go 结构体 (struct)

结构体就是一个复杂的数据类型,里面可以包含字段,也可以嵌套其他结构体
Go 中没有 class,而是使用 struct 。
结构体命名一般都是用CamelCase,首字母大写表示public,首字母小写表示private,和go变量定义一样。

type TreeNode struct {
	value int
	left, rignt *TreeNode
}

go语言采用的是目录分包,同一个目录下是一个包,在文件开头使用package声明。对同一个结构体的方法声名可以在不同的文件中,但必须是在同一个包下面。
go语言建议结构体的名称不要重复包名,同时为了能在其他包访问Node结构体,将上面的TreeNode定义修改如下:

package tree
type Node struct {
	Value int
	Left, Right *Node
}

定义go结构体的方法时,和其他语言不同的是,他需要手动自定函数方法的接受者,可以是指也可以是指针。但是只用者并不需要关心接受者是什么值还是指针,统一调用。

//值
func (node Node) Print(){
	fmt.Print(node.Value," ")
}
//指针
func (node *Node) SetValue(value int){
	if node == nil{
		panic("node is nil")
	}
	node.Value = value
}

func main(){
	root := Node{Value:3}
	root.Left = &Node{}
	root.Right = &Node{Value:4}
	
	root.Print() //值类型调用
	left := root,Left
	left.Print() //指针类型调用
}
2. Go常用命令

查看可用命令
直接在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些:

build: 编译包和依赖
clean: 移除对象文件
doc: 显示包或者符号的文档
env: 打印go的环境信息
bug: 启动错误报告
fix: 运行go tool fix
fmt: 运行gofmt进行格式化
generate: 从processing source生成go文件
get: 下载并安装包和依赖
install: 编译并安装包和依赖
list: 列出包
run: 编译并运行go程序
test: 运行测试
tool: 运行go提供的工具
version: 显示go的版本
vet: 运行go tool vet

build 和 run 命令
就像其他静态类型语言一样,要执行 go 程序,需要先编译,然后在执行产生的可执行文件。go build 命令就是用来编译 go程序生成可执行文件的。但并不是所以的 go 程序都可以编译生成可执行文件的, 要生成可执行文件,go程序需要满足两个条件:1)该go程序需要属于main包2)在main包中必须还得包含main函数。

go build main.go   # 将会生成可执行文件 main
./main           # 运行可执行文件

#go run 命令可以将上面两步并为一步执行
go run main.go

#go clean 命令,可以用于将清除产生的可执行程序
go clean    # 不加参数,可以删除当前目录下的所有可执行文件
go clean xxx.go  # 会删除对应的可执行文件

get 命令
这个命令同样也是很常用的,我们可以使用它来下载并安装第三方包, 使用方式:

# src路径
go get src
#示例
go get github.com/qqxhb/exampl

#可以使用gopm获取无法下载的包
go get github.com./gpmgo/gopm

install 命令
用来编译和安装go程序,我们可以将它与 build 命令对比:

install
生成的可执行文件路径:工作目录下的bin目录下
可执行文件的名字:与源码所在目录同名
依赖:将依赖的包放到工作目录下的pkg文件夹下
build
生成的可执行文件路径:当前目录下
可执行文件的名字:默认与源程序同名,可以使用-o选项指定

test 命令
顾名思义,用来运行测试的命令,这种测试是以包为单位的。需要遵循一定规则:

测试源文件是名称以“_test.go”为后缀的
测试源文件内含若干测试函数的源码文件
测试函数一般是以“Test”为名称前缀, 并有一个类型为“testing.T”的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值