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

302 阅读2分钟

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

关于go语言

go语言是一门较新的语言,有着许多的优点,高性能,高并发,有着丰富的标准库,编译速度快,并且解决了python复杂的包的问题。许多大厂也在使用go语言。

基本语法

HelloWorld

 package main
 ​
 import {
     "fmt"
 }
 ​
 func main() {
     fmt.Println("Hello World!")
 }

package main表示这个文件是main包的一部分

main包是程序的入口包

fmt是go标准库的一个基础包,类似于C的stdio.h

变量

go是一门强类型语言,包括整型,浮点型等,与C++不同的是,字符串是go的内置类型,可以直接通过加号拼接。

go语言定义变量有两种方式

var n = 1

n := 1

常量定义方式是把var换成const

定义时go语言会根据上下文来自动确定类型

判断语句

写法与C/C++类似,不同的是判断内容没有括号,且执行部分必须有大括号。

 if 7%2 == 0 {
     fmt.Println("7 is even")
 } else {
     fmt.Println("7 is odd")
 }

循环语句

go里面只有for循环,判断条件可以不写,代表死循环,也可以写成C语言while循环或者for循环的形式。

 package main
 ​
 import "fmt"
 ​
 func main() {
 ​
     i := 1
     for {
         fmt.Println("loop")
         break
     }
     for j := 7; j < 9; j++ {
         fmt.Println(j)
     }
 ​
     for n := 0; n < 5; n++ {
         if n%2 == 0 {
             continue
         }
         fmt.Println(n)
     }
     for i <= 3 {
         fmt.Println(i)
         i = i + 1
     }
 }

switch

go语言的switch语句不需要写break语句,并且可以使用任意的变量类型。

数组

数组定义方式

var a [5]int

b := [5]int{1,2,3,4,5}

通常很少用数组,因为长度是固定的,更多使用的是切片

切片

 func main() {
     s := make([]string, 3)
     s[0] = "a"
     s[1] = "b"
     s[2] = "c"
     
     s = append(s, "d");
     s = append(s, "e", "f")
 }

切片可以用make来创建,参数为切片元素类型,初始个数。

使用append来添加元素。

使用append需要将结果赋值给原数组。

map

用法

 func main() {
     m := make(map[string]int)
     m["one"] = 1
     m["two"] = 2
     fmt.Println(m) // map[one:1 two:2] 
     
     r, ok := m["unknow"]
     fmt.Println(r, ok) // 0 false
     
     delete(m, "one")
 }

使用make来创建map 使用时与其他语言类似 可以定义两个值来获取map中的值,其中第二个可以获得返回结果。


整体上来说go语言跟python和C++都有一些关联,同时有着C++的准确度,也有着python的便捷。期待后面的学习。