Go语法基础(1)| 豆包MarsCode AI刷题

64 阅读3分钟

Go语法基础(1)

在这篇笔记中,我们将介绍Go语言的基础语法,并通过代码示例来演示其用法。

1. 第一个Go程序

我们从一个简单的“Hello, World!”程序开始。创建一个名为hello.go的文件,并输入以下代码:

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

代码解析

  • package main:定义一个包,main是一个特殊的包,表示可执行程序的入口。
  • import "fmt":导入fmt包,用于格式化输出。
  • func main():定义主函数,程序从这里开始执行。
  • fmt.Println("Hello, World!"):打印字符串到控制台。

运行程序

在终端中运行以下命令:

go run hello.go

你应该会看到输出:

Hello, World!

2. 变量与常量

Go语言使用var关键字声明变量,使用const关键字声明常量。

变量

var name type//仅声明变量
var name [type] = value //声明变量并初始化
name := value //变量的简短声明

注: 上面两种方式可以声明全局变量和局部变量,而第三种仅仅可以声明局部变量。[type]意味着可以省略。

常量

const name [type] = value

下面是一个示例:

package main
​
import "fmt"func main() {
    var name string = "Alice"
    var age  = 30
    local := "XXX"
    
    const pi = 3.14
    const e float64 = 2.718
​
    fmt.Println("Name:", name)
    fmt.Println("Age:", age)
    fmt.Println("Local",local)
    fmt.Println("Pi:", pi)
    fmt.Println("E",e)
}

代码解析

  • var name string = "Alice":声明一个字符串类型的变量name
  • const pi = 3.14:声明一个常量pi

4. 控制结构

Go语言支持常见的控制结构,如条件语句和循环。以下是一个使用iffor的示例:

package main
​
import "fmt"func main() {
    number := 10
​
    if number%2 == 0 {
        fmt.Println(number, "是偶数")
    } else {
        fmt.Println(number, "是奇数")
    }
​
    fmt.Println("打印1到5的数字:")
    for i := 1; i <= 5; i++ {
        fmt.Println(i)
    }
}

代码解析

  • if number%2 == 0:判断数字是否为偶数。
  • for i := 1; i <= 5; i++:使用for循环打印1到5的数字。

5. 函数

函数是Go语言的基本构件。重复代码多了 --> 函数,以下是一个简单的函数示例:

package main
​
import "fmt"// 定义一个函数,计算两个数的和
func add(a int, b int) int {
    return a + b
}
​
func main() {
    sum := add(5, 7)
    fmt.Println("5 + 7 =", sum)
}

代码解析

  • func add(a int, b int) int:定义一个接受两个整数并返回一个整数的函数。
  • sum := add(5, 7):调用函数并将结果存储在sum中。

6. 结构体

结构体是Go语言中的复合数据类型,用于组合多个字段。变量多了 --> 结构体,以下是一个结构体的示例:

package main
​
import "fmt"// 定义一个结构体
type Person struct {
    Name string
    Age  int
}
​
func main() {
    // 创建一个结构体实例
    person1 := Person{Name: "Bob", Age: 25}
    var person2  =  Person {
        "xiaowang",
        15,
    }
    var person3 Person
    person3.Name = "xiaoming"
    person3.Age = 18
    fmt.Printf("%T\n",person1)
    fmt.Println("Name:", person1.Name)
    fmt.Println("Age:", person1.Age)
    fmt.Println("Name:", person2.Name)
    fmt.Println("Age:", person2.Age)
    fmt.Println("Name:", person3.Name)
    fmt.Println("Age:", person3.Age)
}

代码解析

  • type Person struct:定义一个名为Person的结构体,包含NameAge字段。
  • 可以看出有几种方式可以创建实例并初始化,并且发现person1的类型是main.Person

结论

通过这篇笔记,我们介绍了Go语言的基本概念,包括变量、常量、控制结构、函数和结构体。