GO注意事项
目录结构
-goSpace [go项目workspace]
|--src
|--go_code
|--project01 [**一个项目,项目内每个文件夹对应一个包**]
|--project02 [**另一个项目**]
<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/22899296/1634108531710-073ffb62-1a57-4fc6-bedc-9879d9458812.png#clientId=u0be54461-543c-4&from=paste&height=248&id=u9e02dcf1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=244&originWidth=277&originalType=binary&ratio=1&size=50335&status=done&style=none&taskId=u0c6b2590-a9f3-4761-ac01-f0759a2000a&width=281.5)
基础语法
转义字符、注释
常用的转义字符有以下几个:
\t : 表示一个制表符(tab), 通常可以使用它进行排版;
\n : 表示一个换行符;
\\ : 表示一个反斜线;
\" : 表示一个";
\r : 表示一个回车(从当前行的最前面开始输出,覆盖以前的内容);
举例:
package main
import "fmt"
func main() {
fmt.Println("hello\\world")
fmt.Println("hello\tworld")
fmt.Println("hello\"world")
fmt.Println("人生得意需尽欢\r")
fmt.Println("人生得意需尽欢\rok")
fmt.Println("一二三四\n五六")
}
注释
//行注释 (推荐)
/*
块注释
*/
包、函数、变量
包
每个 Go 程序都是由包构成的。程序从 main包开始运行。main 包从 main函数开始运行。
package main //此包名,按照约定,包名与导入路径的最后一个元素一致。
//单个导入
import "fmt"
import "math"
//分组导入
import (
"fmt"
"math/rand"
)
函数
package main
import "fmt"
//函数可以没有参数或接受多个参数。
func add(x int, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
//当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。
func add(x, y int) int {
return x + y
}
//函数可以返回任意数量的返回值。
func swap(a,b string) (string, string){
return b,a
}
//调用时
a, b := swap("hello", "world")
//命名返回值
// Go 的返回值可被命名(sum),它们会被视作定义在函数顶部的变量。
func swap(a,b int) (sum int){
sum = a + b
return sum
}
//没有参数的 return 语句返回已命名的返回值。也就是 直接 返回。
//直接返回语句应当仅用在下面这样的短函数中。在长的函数中它们会影响代码的可读性。
func swap(a,b int) (sum int){
sum = a + b
return
}
变量
var 语句用于声明一个变量列表,跟函数的参数列表一样,类型在最后。
就像在这个例子中看到的一样,var 语句可以出现在包或函数级别。
package main
var y = 10
var a,b,c bool
var (
j,p,k int
name string
)
func main() {
var i int
}
//变量的初始化
//变量声明可以包含初始值,每个变量对应一个。
//如果初始化值已存在,则可以省略类型;变量会从初始值中获得类型。
func main() {
var c, python, java = true, false, "no!"
fmt.Println(i, j, c, python, java)
}
//短变量声明
//在函数中,简洁赋值语句 := 可在类型明确的地方代替 var 声明。
//函数外的每个语句都必须以关键字开始(var, func 等等),因此 := 结构不能在函数外使用。
func main() {
var i, j int = 1, 2
k := 3
c, python, java := true, false, "no!"
fmt.Println(i, j, k, c, python, java)
}