go语言基础语法学习 | 青训营笔记

55 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1天

Go语言基础语法

1、最基本的go语言结构

package main   

import "fmt"  

func main() {  
   fmt.Println("Hello, World!")  
}

我们可以从这代码结构看出,go语言包含三个部分:

  1. package定义了包名,我们必须在文件的开始指明文件所属的是那个包,每一个go语言程序必须有一个main的包。
  2. 下一行 import "fmt"  import告诉Go 编译器这个程序需要使用 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
  3. func是程序的函数,类比于python中函数定义的def,其中main函数是整个程序的入口,是每一个执行程序必须包含的。

注意:文件的名与包名没有什么直接的关系,但是一个文件夹只能有一个包名,,否则会编译错误

2、学习到的基础语法

1、在go语言中不需要添加 ";",一行代表一个语句的结束,这和python比较类似。

2、go中的注释和其他编程语言类似,单行注释 "//", 多行注释 "/* */"。

3、变量的定义可以用var这里的数据类型是写在后面的与其它语言作为区分,也可以用 := 来直接定义比较方便也是我们经常使用的

4、go语言中的基础数据类型也和其他语言差不多,这里我重点学习了go语言中的切片,这对于我来说是一个比较新的内容,所谓的切片其实是对数组的抽象,我们可以类比为动态数组,长度不固定。

var slice1 []type = make([]type, len)

3、go语言的并发

再学习第三个项目的时候学习的了go的并发,Go语言的并发机制运用起来非常简便,在启动并发的方式上直接添加了语言级的关键字就可以实现,和其他编程语言相比更加轻量。

Go 允许使用 go 语句开启一个新的运行期线程, 即 goroutine,以一个不同的、新创建的 goroutine 来执行一个函数。 同一个程序中的所有 goroutine 共享同一个地址空间。

下面是一个简单的示例:

package main  
  
import (  
        "fmt"  
        "time"  
)  
  
func say(s string) {  
        for i := 0; i < 5; i++ {  
                time.Sleep(100 * time.Millisecond)  
                fmt.Println(s)  
        }  
}  
  
func main() {  
        go say("world")  
        say("hello")  
}

image.png 在执行之后我们发现,他们并无固定的先后顺序,原因就在于他们是两个goroutine在执行。

4、学习收获

第一天的学习感觉go是一门非常有趣的语言,但是其中有些语法结构不太熟悉,课下要多看文档。同时群里有非常多优秀的小伙伴不断的激励着我,坚持着一个假期,开学后看到不一样的自己。