Go语言基础-Day1

66 阅读3分钟

Go语言是一种静态类型、编译型的编程语言,由Google开发,旨在提高代码的可读性、简洁性和可维护性。以下是Go语言的一些基础语法和特别解释:

变量和常量

Go语言中的变量和常量都需要先声明后使用。变量声明使用关键字var,常量声明使用关键字const。例如: var x int x = 42 const pi = 3.14159 变量和常量还可以使用简短声明语法:=进行初始化,且系统会自动根据值判断数据的类型,例如: y := 123 const hoursPerDay = 24

数据类型

Go语言中的数据类型包括基本类型和复合类型。基本类型包括整数、浮点数、布尔值等,符合类型包括数组、切片、映射等。例如: var i int = 42 var f float64 = 3.14 var a [3]int = [3]int{1, 2, 3} var s []int = []int{4, 5, 6} var m map[string]int = map[string]int{"foo": 1, "bar": 2}

控制结构

Go语言中的控制结构包括条件语句、循环语句和跳转语句。条件语句包括if和switch,以及select;循环语句包括for,跳转语句包括break、continue和goto。例如: if x > 0 { fmt.Println("Positive") } else if x < 0 { fmt.Println("Negative") } else { fmt.Println("Zero") } switch day { case "Monday": fmt.Println("It's Monday") case "Tuesday": fmt.Println("It's Tuesday") default: fmt.Println("another day") } outer: for i := 0; i < 10; i++ { for j := 0; j < 10; j++ { if i*j > 50 { break outer } fmt.Println(i, j) } }

函数

Go 语言中的函数使用关键字 func 定义,可以有多个参数和返回值。例如: func add(x, y int) int { return x + y } func swap(x, y string) (string, string) { return y, x }

指针

Go 语言中的指针使用 * 和 & 运算符来操作。* 表示解引用,即获取指针指向的值,& 表示取地址,即获取变量的地址。例如: x := 42 p := &x fmt.Println(*p) // 输出 42 *y = 123 fmt.Println(x) // 输出 123

结构体

Go 语言中的结构体是一种自定义的数据类型,可以包含多个字段。结构体使用关键字 type 和 struct 定义,可以通过 . 运算符访问结构体的字段。例如: type Person struct { Name string Age int } p := Person{Name: "Alice", Age: 30} fmt.Println(p.Name) // 输出 Alice

方法

Go 语言中的方法是一种与结构体关联的函数,可以访问结构体的字段和调用结构体的方法。方法使用关键字 func 定义,并在其接收者类型之前添加一个参数,表示该方法所属的结构体类型。例如: func (p Person) SayHello() { fmt.Println("Hello, my name is", p.Name) } p := Person{Name: "Bob", Age: 40} p.SayHello() // 输出 Hello, my name is Bob

fmt.Printf与fmt.Println的区别

fmt.Printf 函数按照指定的格式输出格式化字符串,格式化字符串中使用占位符 % 来表示要输出的值的类型和格式。而fmt.Println 函数类似于 fmt.Printf,但它不需要指定格式化字符串,而是直接将每个参数的值输出到控制台,并在最后添加一个换行符。因此,fmt.Printf 和 fmt.Println 的区别在于输出格式的控制方式和是否自动添加换行符。fmt.Printf 更加灵活,可以通过指定格式化字符串来控制输出格式,而 fmt.Println 则更加简单,适用于输出简单的文本行。

以上是 Go 语言的一些基础语法和特别解释。