青训营笔记

53 阅读2分钟

go语言基础语法

package main

Import("fmt")

func main (){ fmt.println//就像C中的printf//("hello world") }

变量类型 var a,b int=1,2 f:=float32(e) const(常量)x=11111

if-else if a==10{ ……… }

for 循环(只有)也不要括号,也跟着马上大括号! break 跳出 continue 持续就行

switch 分支结构 switch m 加上大括号 不要break

数组

切片 s:=make([]string,3) s[0]="a" s[1]="b" s[2]="c" append//增加// s=append(s,"d") s=append(s,"e","f") copy(c,s)//把s负值给c// s[2:5]//从第2个到第5个。

map m:=make(map[string//one的类型//]int//1的类型//) m["one"]=1 m["two"]=2 delete(m,"one")删除 r,ok:=m[xjsb]//看是否有这个存在

range返回索引和对应的值

函数 定义类型在后面 a int,b int=a,b int

指针

结构体

猜谜游戏 首先倒入 math/rand 包 rand.Intn(maxNum)//生成随机数 在生成随机数之前,要用时间戳去打乱随机数。rand.seed(time.Now().UnixNano())//在这之前要倒入time包 13 func main() f

14 maxNum := 100

15 rand. Seed(time . Now() .Uni xNano())

16 secretNumber := rand . Intn( maxNum)

fmt Println("The secret number is ", secretNumber)

17 //fmt . Println("The secret number is ", secretNumber)

18

19 fmt. Println("Please input your guess")

20 reader := bufio . NewReader(os . Stdin)

21 for input, err := reader . ReadString('ln')

23 if err!=nil

24 fmt . Println("An error occured while reading input. Please try again", err)return

25 continue

26

27 input = strings. TrimSuffix(input, "ln")

28

29 guess, err := strconv. Atoi(input)

30 if err!=ni

31 fmt .Println("Invalid input. Please enter an integer value")

return

32 continue

33

34 fmt . Println("You guess is"guess)

35 if guess > secretNumber [

36 fmt .Println("Your guess is bigger than the secret number. Please try again")

37 else if guess < secretNumber f

38 fmt . Println("Your guess is smaller than the secret number. Please try again")

39 else

40

break

要注意变量的名字,不能用数字作为第一个标识符。要特别注意,变量的名字会不会与特殊变量名字冲突,尽量不要取冲突的名字。一个文件只能有一个main包,函数要学会定义有哪些类型,才会去好好应用,不至于出错。在函数使用前,我们需要先定义,在使用。我们定义时,要把函数名字放在后面。