字节后端青训学习第一篇

93 阅读3分钟

学习代码第一步,学会如何输出hello word

在学习如何编译前的基本准备是配置好一个go环境和编译器,这里我选择了使用vscode,至于配置网上有很多这里提供微软给出的链接 为 Go 开发配置Visual Studio Code | Microsoft Learn

配置完成后我们就可以开始我们的hello world啦,创建个文件夹用来保存在青训营期间学习到的东西,这是我hello world的文件夹和相应程序代码

image.png

代码

package main

import "fmt"

func main() {
	fmt.Println("hello,world")
}

接下来我们要如何运行这个代码,打开vscode终端

image.png

这样我们的hello world就输出出来了。

学习代码第二步,语法

变量

这里直接上代码吧,也不去过多的说明变量这块的东西了

package main

import (
	"fmt"
	"math"
)

func main() {
	var a ="initial"

	var b,c int =1,2

	var d=true
	var e float64

	f :=float32(e)

	g :=a+"foo"
	
	fmt.Println(a,b,c,d,e,f)
	fmt.Println(g)

	const s string="constant"
	const h = 50000000
	const i = 3e20/h
	fmt.Println(s,h,i,math.Sin(h),math.Sin(i))
	 

}

运行结果

image.png

基础语法

if else 语法

这边我们学习一下if else语法

package main

import (
	"fmt"	
)

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

	if 8%4==0 {
		fmt.Println("8 is divisible by 4" )
	}
	if num:=9;num < 0{
		fmt.Println(num,"is negative")
	}else if num<10{
		fmt.Println(num,"has 1 digit")
	}else{
		fmt.Println(num,"has multiple digits")
	}
	 

}

运行结果:

image.png

for循环

接下来学习一下循环 只有for 循环,没有while循环和do while循环 这里也直接上代码

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
	}
}

让我们来看看它的运行结果吧

image.png

switch 语句

接下来我们学习一下switch 语句

package main

import (
	"fmt"
	"time"
)

func main() {

	a:=2
	switch a{
	case 1:
		fmt.Println("one")
	case 2:
		fmt.Println("two")
	case 3:
		fmt.Println("three")
	case 4,5:
		fmt.Println("four or five")
	default:
		fmt.Println("other")
	}
	t:=time.Now()
	switch{
	case t.Hour()<12:
		fmt.Println("It's before noon")
	default:
		fmt.Println("It's after noon")	
	}
}

我们来看看运行结果:

image.png

数组

接下来是学习有关数组的内容

package main

import (
	"fmt"
)

func main() {
	var a[5]int
	a[4]=100
	fmt.Println(a[4],len(a))

	b:=[5]int{1,2,3,4,5}
	fmt.Println(b)

	var twoD [2][3]int
	for i:=0;i<2;i++{
		for j:=0;j<3;j++{
			twoD[i][j]=i+j
		}
	}
	fmt.Println("2d:",twoD)
}

我们来看看运行结果

image.png 在这里我把切片也归到数组这一块

package main

import (
	"fmt"
)

func main() {
	s:=make([]string,3)
	s[0]="a"
	s[1]="b"
	s[2]="c"
	fmt.Println("get:",s[2])
	fmt.Println("len:",len(s))

	s=append(s, "d")
	s=append(s, "e","f")
	fmt.Println(s)

	c:=make([]string,len(s))
	copy(c,s)
	fmt.Println(c)

	fmt.Println(s[2:5])
	fmt.Println(s[:5])
	fmt.Println(s[2:])

	good:=[]string{"g","o","o","d"}
	fmt.Println(good)
}

代码运行结果:

image.png

关于map的使用

例子:

package main

import "fmt"

func main() {
	m := make(map[string]int)
	m["one"] = 1
	m["two"] = 2
	fmt.Println(m)
	fmt.Println(len(m))
	fmt.Println(m["one"])
	fmt.Println(m["unknow"])

	r,ok :=m["unknow"]
	fmt.Println(r,ok)

	delete(m,"one")

	m2:=map[string]int{"one":1,"two":2}
	var m3=map[string]int {"one":1,"two":2}
	fmt.Println(m2,m3)
}

运行结果:

image.png

range

例子:

package main

import "fmt"

func main() {
	nums := []int{2, 3, 4}
	sum := 0
	for i, num := range nums {
		sum += num
		if num == 2 {
			fmt.Println("index:", i, "num:", num)
		}
	}
	fmt.Println(sum)

	m := map[string]string{"a": "A", "b": "B"}
	for k, v := range m {
		fmt.Println(k, v)
	}
	for k := range m {
		fmt.Println("key", k)
	}
}

运行结果:

image.png

函数

例子:

package main

import "fmt"

func add(a int, b int) int {
	return a + b
}
func add2(a, b int) int {
	return a + b
}
func exists(m map[string]string, k string) (v string, ok bool) {
	v, ok = m[k]
	return v, ok
}
func main() {
	res := add(1, 2)
	fmt.Println(res)

	v, ok := exists(map[string]string{"a": "A"}, "a")
	fmt.Println(v, ok)
}

运行结果:

image.png

总结:

笔记先写下这部分,只是大致的跟着视频中的资料把代码全部敲打了一遍,整体内容感觉还不错就是讲解的速度太快了属于听一节课需要花费一些时间来进行敲代码一节课的时间花费会很长。但是视频内容还是不错的相比起来会比较适合已经有一定编程基础的人,讲师的速度还是偏快的,继续加油吧。