Go语言基础语法 | 青训营

91 阅读3分钟

go语言的第一节课,是由王克纯老师为我们讲的,首先为我们介绍了青训营课程构语言系列的整体讲解方向,以及讲解的框架。 之后为我们简单的介绍了什么是go语言,Go语言是一种高性能,高并发语言,语法简单,有丰富的标准库,完善的工具链,静态链接,快速编译,跨平台,垃圾回收多种特点集一身的的一门语言,同时也为我们介绍了,Go语言在许多大厂中的应用场景,接着又介绍了字节跳动选择go语言的原因。将前面的这些为我们介绍完之后,便真正开启了go语言的入门之路,首先为我们介绍了go long的开发环境和安装,接着又介绍了如何配置go语言的开发环境:,接着介绍了基础语法,每门语言必须要掌握的hello world:

package main

import "fmt"

func main() {

fmt.Println("Hello world") }

,之后为我们简单介绍了go语言的基础语法,变量:

var (

a,b int

c bool

str string )

// 同一类型的多个变量可以声明在同一行

var a,b,c int

// 多变量可以在同一行进行声明和赋值

var a,b,c int = 1,2,3

// 多变量可以在同一行进行赋值(这样的赋值只能在函数体内)

a,b = 5,7

//定义一个变量为int型

var a int

// 定义一个变量为bool型

var b bool

// 定义一个变量为string型

var str string

// 定义两个变量为int型

var a,b int

,选择循环语句 ,数组:

一维数组:

var 数组名 [数组大小] 数组元素的数据类型{} //{}代表将数组声明的同时将他初始化一下

例如:

var myarray1 = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0} 多维数组:

二维数组是最简单的多维数组

声明方式如下:

var 数组名 [][][]...[][]数组类型

二维数组声明

var 数组名 [x][y] 数据类型

可以认为x是行y是列

例如:

var mytwostr = [2][3]int{{1, 2, 3},

						{2, 3, 4}}

,切片,map:

//map(映射)

func main() {

// 光声明map类型,但是没有初始化

var a map[string]int

fmt.Println(a == nil)

// map的初始化

a = make(map[string]int, 8)

fmt.Println(a == nil)

// map中添加键值对

a["小王子"] = 100

a["童话"] = 200

fmt.Printf("a:%#v\n", a)

fmt.Printf("type:%T\n", a)

// 声明map同时完成初始化

b := map[int]bool{

1: true,

2: false,

}

fmt.Printf("b:%#v\n", b)

fmt.Printf("type:%T", b)

var c map[int]int

c[100] = 200 //c 这个map没有初始化不能直接操作

fmt.Println(c) }

,range:

package main

import "fmt"

func main() {

//这是我们使用range去求一个切片的和。使用数组跟这个很类似

nums := []int{2, 3, 4}

sum := 0

for _, num := range nums {

sum += num

}

fmt.Println("sum:", sum)

//在数组上使用range将传入index和值两个变量。

//上面那个例子我们不需要使用该元素的index,所以我们使用空白符"_"省略了。有时侯我们确实需要知道它的索引。

for i, num := range nums {

if num == 3 {

	fmt.Println("index:", i)

}

}

//range也可以用在map的键值对上。

kvs := map[string]string{ "a": "apple", "b": "banana"

}

for k, v := range kvs {

fmt.Printf("%s -> %s\n", k, v)

}

//range也可以用来枚举Unicode字符串。第一个参数是字符的索引,第二个是字符(Unicode的值)本身。

for i, c := range "go" {

fmt.Println(i, c)

} } ,函数,指针,结构体方法,错误处理,时间处理,数字解析,进程信息等等,课上老师讲的非常认真,所有听课的人,包括我都受益匪浅,同时也初步了解了go语言的基础语法。今天是学习的第一天,多学习一门技术,多掌握一门编程计算机语言,对自己很有帮助,希望自己可以坚持下去,认真完成这次字节青训营的活动。