GO注意事项

image.png

目录结构

-goSpace [go项目workspace]

  1. |--src
  2. |--go_code
  3. |--project01 [**一个项目,项目内每个文件夹对应一个包**]
  4. |--project02 [**另一个项目**]
  5. <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)

基础语法

转义字符、注释

常用的转义字符有以下几个:

  1. \t : 表示一个制表符(tab), 通常可以使用它进行排版;
  2. \n : 表示一个换行符;
  3. \\ : 表示一个反斜线;
  4. \" : 表示一个";
  5. \r : 表示一个回车(从当前行的最前面开始输出,覆盖以前的内容);

举例:

  1. package main
  2. import "fmt"
  3. func main() {
  4. fmt.Println("hello\\world")
  5. fmt.Println("hello\tworld")
  6. fmt.Println("hello\"world")
  7. fmt.Println("人生得意需尽欢\r")
  8. fmt.Println("人生得意需尽欢\rok")
  9. fmt.Println("一二三四\n五六")
  10. }

image.png

注释

  1. //行注释 (推荐)
  2. /*
  3. 块注释
  4. */

包、函数、变量

每个 Go 程序都是由包构成的。程序从 main包开始运行。main 包从 main函数开始运行。

  1. package main //此包名,按照约定,包名与导入路径的最后一个元素一致。
  2. //单个导入
  3. import "fmt"
  4. import "math"
  5. //分组导入
  6. import (
  7. "fmt"
  8. "math/rand"
  9. )

函数

  1. package main
  2. import "fmt"
  3. //函数可以没有参数或接受多个参数。
  4. func add(x int, y int) int {
  5. return x + y
  6. }
  7. func main() {
  8. fmt.Println(add(42, 13))
  9. }
  10. //当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。
  11. func add(x, y int) int {
  12. return x + y
  13. }
  14. //函数可以返回任意数量的返回值。
  15. func swap(a,b string) (string, string){
  16. return b,a
  17. }
  18. //调用时
  19. a, b := swap("hello", "world")
  1. //命名返回值
  2. // Go 的返回值可被命名(sum),它们会被视作定义在函数顶部的变量。
  3. func swap(a,b int) (sum int){
  4. sum = a + b
  5. return sum
  6. }
  7. //没有参数的 return 语句返回已命名的返回值。也就是 直接 返回。
  8. //直接返回语句应当仅用在下面这样的短函数中。在长的函数中它们会影响代码的可读性。
  9. func swap(a,b int) (sum int){
  10. sum = a + b
  11. return
  12. }

变量

var 语句用于声明一个变量列表,跟函数的参数列表一样,类型在最后。

就像在这个例子中看到的一样,var 语句可以出现在包或函数级别。

  1. package main
  2. var y = 10
  3. var a,b,c bool
  4. var (
  5. j,p,k int
  6. name string
  7. )
  8. func main() {
  9. var i int
  10. }
  1. //变量的初始化
  2. //变量声明可以包含初始值,每个变量对应一个。
  3. //如果初始化值已存在,则可以省略类型;变量会从初始值中获得类型。
  4. func main() {
  5. var c, python, java = true, false, "no!"
  6. fmt.Println(i, j, c, python, java)
  7. }
  1. //短变量声明
  2. //在函数中,简洁赋值语句 := 可在类型明确的地方代替 var 声明。
  3. //函数外的每个语句都必须以关键字开始(var, func 等等),因此 := 结构不能在函数外使用。
  4. func main() {
  5. var i, j int = 1, 2
  6. k := 3
  7. c, python, java := true, false, "no!"
  8. fmt.Println(i, j, k, c, python, java)
  9. }