字节青训营第一天|青训营笔记

46 阅读2分钟

你好,Go!

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

和C语言相似,go语言的基本组成有:

  • 包声明,编写源文件时,必须在非注释的第一行指明这个文件属于哪个包,如package main
  • 引入包,其实就是告诉Go 编译器这个程序需要使用的包,如import "fmt"其实就是引入了fmt包。
  • 函数,和c语言相同,即是一个可以实现某一个功能的函数体,每一个可执行程序中必须拥有一个main函数。 变量,Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
  • 语句/表达式,在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。
  • 注释,和c语言中的注释方式相同,可以在任何地方使用以 // 开头的单行注释。以 /* 开头,并以 */ 结尾来进行多行注释,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。

slice

Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

var s []int

类似与声明一个数组,只不过不用填写它的长度

值得一提的是,切片必须先初始化才能使用!

package main
​
import "fmt"func main() {
​
    s := make([]string, 3)
    s[0] = "a"
    s[1] = "b"
    s[2] = "c"
    fmt.Println("get:", s[2])   // c
    fmt.Println("len:", len(s)) // 3// 使用append在尾部添加元素
    s = append(s, "d")
    s = append(s, "e", "f")
    fmt.Println(s) // [a b c d e f]
​
    c := make([]string, len(s))
    // 将s复制给c
    copy(c, s)
    fmt.Println(c) // [a b c d e f]
    
    fmt.Println(s[2:5]) // [c d e]
    fmt.Println(s[:5])  // [a b c d e]
    fmt.Println(s[2:])  // [c d e f]
​
    good := []string{"g", "o", "o", "d"}
    fmt.Println(good) // [g o o d]
}
package main
​
import (
    "fmt"
    "math/rand"
    "time"
)
​
func main() {
	maxNum := 100
	var guess int
	flag := false
	// 使用一直在不断变化的时间作为我们的种子(时间戳)
	rand.Seed(time.Now().UnixNano())
	// 设置种子之后产生一个最大为100的整形
	secretNumber := rand.Intn(maxNum)
	fmt.Println("Please input your guess")
​
   for i := 0; i < 5; i++ {

		// 输入我们猜的数字
		_, err := fmt.Scan(&guess)
		// Go语言中处理错误的方法
		if err != nil {
			fmt.Println("Invalid input. Please enter an integer value")
			return
		}

		if guess > secretNumber {
			fmt.Println("You guess ", guess, "is larger than the secret number")
		} else if guess < secretNumber {
			fmt.Println("You guess ", guess, "is less than the secret number")
		} else {
			fmt.Println("You guess ", guess, "is right")
			flag = true
		}
		if flag {
			break
		}
	}
	if !flag {
		fmt.Println("You fail! The secret number is ", secretNumber) // 作弊模式
	}
}

学习后写的一个简单的猜数游戏