Go语言基础入门|青训营笔记

131 阅读3分钟

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

前言

  • 环境配置
  • 基础语法
  • 标准库
  • 实战

一、环境配置

本机环境:

  • MacOS 13.1
  • Apple m2芯片
  • VSCode 1.71.2

安装:
首先在官网下载对应的安装包,安装到电脑上。
在VsCode上安装Go插件。至此,基础的开发环境已经配置完成。
Downloads - The Go Programming Language

截屏2023-01-15 19.42.32.png

截屏2023-01-15 19.44.42.png

输出 Hello World ,若正确输出,则配置成功。

截屏2023-01-15 20.35.30.png

二、基础语法

详见:
Go 语言基础语法 | 菜鸟教程 (runoob.com)
前言 · Go语言圣经 (studygolang.com)

1. go语言结构

go语言的基础组成有以下几部分:包声明、引入包、函数、变量、语句&表达式、注释。
需要注意的是 { 不能单独放在一行,所以以下代码在运行时会产生错误。

package main  
  
import "fmt"  
  
func main() {  
   /* 这是我的第一个简单的程序 */  
   fmt.Println("Hello, World!")  
}

2. go语言基础语法

  • go语言一行代表一个语句结束,不需要
  • // 单行注释 ; /* */多行注释
  • 标识符:第一个字符字母或者下划线不能是数字。
  • 字符串连接,可以使用 +
  • 变量声明: var a int
  • 格式化字符串(Sprintf:根据格式化参数生成格式化的字符串并返回该字符串;Printf 根据格式化参数生成格式化的字符串并写入标准输出。

3. go语言变量

  • 指定变量类型,如果没有初始化,则变量默认为零值。
  • 根据值自行判定变量类型。
  • := 相当于声明一个变量(故已经声明过的变量不能再使用)
  • 多变量声明
package main
import(
	"fmt"
)
func main(){
	//1.指定变量类型,如果没有初始化,则变量默认为零值。
	var a,b int
	a=1
	//2.根据值自行判定变量类型。
	var c=true
	//3.:= 相当于声明一个变量(故已经声明过的变量不能再使用)
	d:=3
	//4.多变量声明
	var e,f int
	e,f = 4,5
	var g,h = 6,7
	i,j := 8,9
	fmt.Println("1.指定变量类型,如果没有初始化,则变量默认为零值。",a,b)
	fmt.Println("2.根据值自行判定变量类型。",c)
	fmt.Println("3.:= 相当于声明一个变量(故已经声明过的变量不能再使用",d)
	fmt.Println("4.多变量声明",e,f,g,h,i,j)
}

则对应的输出为:

1.指定变量类型,如果没有初始化,则变量默认为零值。 1 0
2.根据值自行判定变量类型。 true
3.:= 相当于声明一个变量(故已经声明过的变量不能再使用 3
4.多变量声明 4 5 6 7 8 9

4. go语言条件语句

  • if语句
  • if...else语句
  • if嵌套语句
  • switch语句
  • select语句
    go语言没有三目运算符,不支持:?
package main
import(
	"fmt"
)
func main(){
	/* 定义局部变量 */
	var a int = 1
	/* 使用 if 语句判断布尔表达式 */
	if a < 2 {
		/* 如果条件为 true 则执行以下语句 */
		fmt.Printf("a 小于 2\n" )
	}
	fmt.Printf("a 的值为 : %d\n", a)
}

对应输出为:

a 小于 2
a 的值为 : 1

5. go语言循环语句

  • for循环
package main
import(
	"fmt"
)
func main(){
	//1. 计算1~10数字之和
    sum := 0
      for i := 0; i <= 10; i++ {
         sum += i
      }
   fmt.Println(sum)
   //2. 对字符串进行循环
   strings := []string{"google", "runoob"}
   for i, s := range strings {
      fmt.Println(i, s)
   }
}

对应输出为:

55
0 google
1 runoob