Hello World GO版
# 1、简单的一个Hello World GO
hello world GO版代码:
// hello world go
package main //包名
//引入包fmt
import "fmt"
//func:方法 关键字,表示一个函数
//main:主函数(方法名)
func main() {
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, World!") //方法体输出
}
2
3
4
5
6
7
8
9
10
- 代码格式注意事项
1)左大括号 { 不能在单独的行上。
2)只有在一行中有多条语句的时候才用 ; 进行分开,但是一般不支持在一行中写多条语句。
# 2、main函数概览
1)main函数无参数无返回值。main方法必须包含在main包中。
2)若main函数里面引用了同一个包的其他方法、类型,需要加上对应文件。
3)包名为main的包为应用程序的入口包,编译后可以得到一个可执行文件;而编译不包含main的包,源代码不会得到可执行文件。
# 3、package声明
1)同一个目录下go文件package声明必须一致。
2)同一个目录下go文件和test.go文件的package声明可以不一致。
//diff目录
//diff.go
package diff
import "fmt"
func Hello(){
fmt.Println("Hello, World!")
}
//diff_test.go
package diff_test
import "demo/package/diff"
func UseHello(){
diff.Hello() //引用到diff包下的Hello方法,是否加上diff取决于diff_test.go文件是否与diff.go文件同一个包命名
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
3)package名字可以和目录的名字不一样,包名不能包含‘-’符号。
# 4、Golang包的介绍和定义
一、分类:
1、系统内置包:Golang语言给我们提供的内置包,引入后可以直接使用
2、自定义包:开发者自己写的包
3、第三方包:属于自定义包的一种,需要下载安装到本地后才可以使用
二、go mod
1)go mod init +项目名称 :初始化项目,生成一个go.mod文件管理项目依赖
2)若需要引用到自定义包
3)main.go文件下引入包
自定义包:
package main
import (
"035-1/calc" //引用时创建引用包
"fmt"
)
func main() {
var add = calc.Add(1, 2)
fmt.Println(add) //3
var sub = calc.Sub(1, 2)
fmt.Println(sub) //-1
}
2
3
4
5
6
7
8
9
10
11
12
13
注意事项:
① 自定义包中,可以在自定义包的文件夹下生成无限个go文件。
② init方法永远优先于main方法使用

③ 一个自定义包中可以引用其他的自定义包
第三方包:
下载安装第三方包
/*以下载double精度包为例,下载网址为:https://github.com/shopstring/decimal*/
go get github.com/shopstring/decimal
//or
go install github.com/shopstring/decimal@latest
2
3
4
修复缺失第三方包
go mod tidy //修复依赖
# 基本开发的其他注意事项
1、开发目录结构:包名按照下划线去配置
src文件夹:源代码文件夹
pkg文件夹:包配置目录
bin文件夹:go install 安装命令目录
2、Golang注释的使用
// 单行注释
/*
Author by 菜鸟教程
我是多行注释
*/
2
3
4
5
3、关于命名方面:不可以用数字开头、关键字、运算符命名!建议使用驼峰命名法!
//首字符是否大写控制了访问性:大写包外可访问,小写包内不可访问
package main
//首字母大写,可以全局访问
var Global = "全局变量"
//首字母小写,只能在这个包里访问
//子包也不可以访问使用
var local = "包内变量/私有变量"
//块声明
var (
First string = "1"
second int = 2
)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
4、关于字符串的连接:是可以用+进行连接
运行文件:go run 文件名.go
生成exe文件:go build 文件名.go
5、关于项目文件:最好还是放在GOPATH目录下(挑战例外)
6、转义字符:\\
package main
import "fmt"
func main() {
fmt.Println("TomJason") //无符号
fmt.Println("Tom\tJason") //制表符
fmt.Println("Tom\nJason") //换行符
fmt.Println("Tom\\Jason") //一个\
fmt.Println("Tom\*Jason") //一个*
fmt.Println("Tomandjerry\rJason") //回车(从当前行开始输出,覆盖开头的字符)
}
2
3
4
5
6
7
8
9
10