【Go语言学习】ide安装与配置
【GO语言基础】前言
【GO语言基础】变量常量
【GO语言基础】数据类型
//声明本代码所属包
package main
import "fmt"//导入fmt包
func main() {//声明一个名为main的函数,main为主函数为go的入口,不定义程序无法运行
fmt.Println("hello,golang")//打印hello.golang
}
这段代码引入三个关键字package,import和func
package main:
import "fmt":
如果未使用的导入会导致编译错误。func main():
fmt.Println("hello, golang"):
使用func关键字声明函数。函数可以返回多个值,通过逗号分隔。函数可以作为参数和返回值。
package main
import "fmt"
//定义函数Add
func Add(a, b int) int {
return a + b
}
//调用函数Add
func main() {
fmt.Println(Add(100, 200))
}
import如果未使用go文件无法通过编译,go编译器是一行一行编译,不要把语句写到一行,否则会产生错误。

行数较长:使用"内容内容 ",换行


go help:用于快速显示帮助。
go run: 用于快速测试和运行Go源代码文件,特别是在开发阶段。
go build: 用于将Go代码编译成可执行文件,方便在不同环境中运行。
go test: 用于运行测试用例,确保代码的正确性和稳定性。
go fmt: 用于格式化代码,使其符合Go语言的标准格式,以提高代码的可读性。
go get: 用于获取并安装外部依赖库,方便项目中使用第三方包。
go mod init: 用于初始化Go模块,开启模块管理功能。
go mod tidy: 用于整理和清理项目中的依赖关系,移除不再使用的依赖项。
go mod vendor: 将依赖项复制到项目的vendor目录中,以实现更好的版本控制。
go doc: 查看代码实体的文档,方便了解和使用标准库以及其他包的功能。
go install: 编译并安装Go程序,将可执行文件安装到$GOPATH/bin目录。

文件命名规则:
.go。 所有Go源代码文件都必须以.go为扩展名。http_handlers.go。_test.go结尾。 用于单元测试和性能测试的文件应该以_test.go结尾,例如mypackage_test.go。变量命名规则:
myVariable, value_1, _privateVar。myVariableName。func、for、if等作为变量名。MyPublicVariable可以在其他包中访问。以下是无效的标识符:
| 关键字 | 描述 |
|---|---|
| break | 用于跳出循环 |
| default | 用于switch语句的默认分支 |
| func | 用于定义函数和方法 |
| go | 用于启动并发协程 |
| goto | 用于无条件跳转到指定标签的语句 |
| if | 用于条件语句 |
| return | 用于返回函数结果 |
| defer | 用于延迟执行函数调用 |
| else | 用于条件语句的备选分支 |
| for | 用于循环语句 |
| switch | 用于多路分支语句 |
| const | 用于定义常量 |
| fallthrough | 用于switch语句中的默认处理 |
| case | 用于switch语句的分支判断 |
| continue | 用于跳过当前循环迭代 |
| type | 用于定义类型 |
| var | 用于声明变量 |
这些关键字不能作为命名使用,因为它们具有特殊的语法含义,用于表示Go语言的关键字。
使用驼峰命名法(CamelCase)来命名变量和函数,遵循一致的命名规范,使代码更易读。
package main
import "fmt"
func Add(a, b int) int {
return a + b
}
func main() {
var NewTest1 int = 1 //大驼峰命名法,单词首字母大写
var testVersion = "v1.0" //小驼峰命名法,除第一个单词外,其他单词首字母大写
fmt.Println(NewTest1)
fmt.Println(testVersion)
fmt.Println(Add(100, 200))
}
第一种简易模板
/myproject
/bin
/pkg
/src
/project1
/go.mod
/main.go
/project2
/go.mod
/main.go
bin 目录存放编译后的可执行文件。
pkg 目录存放编译后的包文件。
src 目录存放项目源文件。
project1 项目一
project2 项目二
第二种详细目录:
myapp/
├── cmd/
│ ├── myapp/
│ │ └── main.go
├── internal/
│ ├── package1/
│ │ ├── module1.go
│ │ └── module2.go
│ ├── package2/
│ │ ├── module1.go
│ │ └── module2.go
├── pkg/
│ ├── myutil/
│ │ ├── util1.go
│ │ └── util2.go
├── api/
│ ├── api.go
├── web/
│ ├── static/
│ ├── templates/
│ ├── main.go
├── config/
│ ├── config.go
├── tests/
│ ├── test1.go
│ └── test2.go
├── README.md
└── go.mod
cmd/: 用于存放应用程序的入口文件。每个应用程序通常都有一个子目录,其名称是应用程序的名称(如myapp)。每个子目录中通常有一个main.go文件,它包含应用程序的入口点。
internal/: 用于存放项目的内部包(internal packages),这些包只能被本项目中的其他包所引用,而不能被外部包引用。
pkg/: 用于存放可以被其他项目引用的包,被称为"公共包"(public packages)。
api/: 存放用于API定义的代码,如接口、数据结构等。
web/: 存放Web应用程序相关的文件,如静态资源(static/)、模板文件(templates/)以及主要的main.go文件。
config/: 存放应用程序的配置文件,或者用于加载配置的代码。
tests/: 存放测试文件,通常以_test.go结尾,用于编写单元测试和集成测试。
README.md: 项目的说明文档,可以描述项目的用途、使用方法等。
go.mod: Go模块文件,用于定义项目的模块路径和依赖关系。
行注释:
// 这是一个单行注释
多行注释:
/*
这是一个多行注释,
可以跨越多行。
*/
文档注释:
可以使用/**和*/来定义文档注释,这种注释通常用于生成API文档。文档注释应该出现在函数、方法或类型之前
/**
* 这是一个函数,用于计算两个数的和。
* @param a 第一个加数
* @param b 第二个加数
* @return 两个数的和
*/
func Add(a, b int) int {
return a + b
}
本文简单介绍go语言的一些基本的知识,go语言简化了很多种的语言风格,如去掉结尾的分号,为使用包引用无法编译这些强制性措施使得代码风格统一代码的简洁性增加同时提高可读性等优点。