📜  Go-基本语法(1)

📅  最后修改于: 2023-12-03 15:01:00.830000             🧑  作者: Mango

Go-基本语法

Go是一门开发高效、安全和可靠的计算机程序的编程语言,它的设计目标是同时具备静态编程语言和动态编程语言的优点,使程序员能够编写简单高效的代码。在这篇文章中,我们将通过一些基本语法介绍Go的语言特性。

1. 变量和常量

Go的变量和常量声明与其他语言不同。在声明变量时,要显式写出变量类型:

var num int    // 声明一个整型变量num
num = 10       // 给num赋值为10

var name string = "hello"  // 声明字符串类型变量name并初始化为"hello"

age := 25   // 声明一个整型变量age并初始化为25(可以省略var关键字和类型)

常量在声明时必须初始化:

const PI = 3.14
2. 数据类型

Go中提供有多种内置的数据类型,包括整型、浮点型、字符型、布尔型等。可以使用varconst声明变量和常量,也可以使用type定义类型:

type NewInt int    // 定义了一个叫做NewInt的新类型,它的实际类型是int

var num NewInt    // 声明一个NewInt类型的变量num

3. 数组和切片

数组和切片是Go中非常常用的一种数据类型。数组长度是固定的,不支持动态扩容,而切片则是基于数组的动态扩容的方式。数组和切片的声明方式如下:

var arr [5]int    // 声明一个长度为5的整型数组
arr[0] = 1        // 给数组的第一个元素赋值为1

slice := make([]int, 5)   // 声明一个长度为5的整型切片
slice[0] = 1              // 给切片的第一个元素赋值为1
4. 控制语句

Go中有if、for、switch等常见的控制语句,这些语句在其他编程语言中使用也非常广泛。比如,使用for循环求1~100的累加和:

sum := 0
for i := 1; i <= 100; i++ {
    sum += i
}
fmt.Println(sum)   // 输出5050

if语句的使用也类似:

num := 10
if num > 5 {
    fmt.Println("num is greater than 5")
} else {
    fmt.Println("num is less than or equal to 5")
}

switch语句可以用于多个条件的选择:

score := 85
switch {
case score >= 90:
    fmt.Println("A")
case score >= 80:
    fmt.Println("B")
case score >= 70:
    fmt.Println("C")
case score >= 60:
    fmt.Println("D")
default:
    fmt.Println("E")
}
5. 函数

函数是Go中的重要组成部分,它们用于把一段代码包装成一个可重用的模块。在Go中定义函数的方式如下:

func add(a, b int) int {
    return a + b
}

函数的参数和返回值可以是多个:

func swap(a, b int) (int, int) {
    return b, a
}

Go中还支持匿名函数和闭包的概念,这些概念有助于编写更加模块化的程序。

6. 并发编程

Go语言在设计时就考虑了并发编程的支持,因此它提供了goroutine和channel两个特性,使并发编程变得更加简单和高效。下面是一个使用goroutine实现并发的例子:

func printNum() {
    for i := 1; i <= 10; i++ {
        fmt.Println(i)
        time.Sleep(500 * time.Millisecond)  // 暂停500毫秒
    }
}

go printNum()   // 启动一个新的goroutine并执行printNum函数

channel则可以用于在不同的goroutine之间传递数据:

c := make(chan int)    // 声明一个名为c的int类型的channel

go func() {
    time.Sleep(2 * time.Second)   // 等待2秒钟
    c <- 1                        // 往c中写入1
}()

result := <-c    // 从c中读取数据
fmt.Println(result)   // 输出1

以上就是Go语言的基本语法介绍,希望能对你学习Go语言有所帮助。