📜  golang 示例 (1)

📅  最后修改于: 2023-12-03 14:41:35.007000             🧑  作者: Mango

Golang 示例

什么是 Golang

Golang,也叫 Go,是一门开源的编程语言,由 Google 开发。Golang 为静态类型、强类型、编译型的语言,并且具有垃圾回收功能。它具有高效、简单、安全等优点,适用于网络、分布式、高并发的应用场景。

安装 Golang

要使用 Golang 编程,需要先安装 Golang。您可以在 官方网站 上下载适合您系统的编译器进行安装。

Hello World

让我们来写一个简单的 Hello World 程序来熟悉一下 Golang。

package main

import "fmt"

func main() {
    fmt.Println("Hello World")
}

这个程序中,我们首先导入 fmt 包,再定义一个 main 函数来输出 Hello World 字符串。使用 go run 命令来运行文件。

命令行输入:
$ go run main.go
变量和常量

在 Golang 中,可以使用 var 关键字定义变量,如下所示:

var a int = 10
var b, c string = "hello", "world"

同样,也可以使用 const 关键字定义常量,如下所示:

const PI = 3.1415926
数组和切片

Golang 中的数组长度不能改变,而切片则是一个动态数组。定义数组的方式如下:

var a [5]int
a[2] = 7

b := [3]string{"hello", "world", "go"}

c := [...]int{1, 2, 3, 4, 5}

定义切片的方式如下:

a := []int{1, 2, 3, 4, 5}

b := make([]int, 3, 5)
b[1] = 2
b[2] = 3
控制结构

Golang 中的控制结构和其他语言类似,包括 if-else、for 循环、switch 等。例如,下面是一个 if-else 的例子:

a := 12
if a > 10 {
    fmt.Println("a is greater than 10")
} else {
    fmt.Println("a is not greater than 10")
}

下面是一个 for 循环的例子:

for i := 0; i < 5; i++ {
    fmt.Printf("i is %d\n", i)
}

下面是一个 switch 的例子:

switch os := runtime.GOOS; os {
case "darwin":
    fmt.Println("OS X.")
case "linux":
    fmt.Println("Linux.")
default:
    fmt.Printf("%s.\n", os)
}
Goroutines 和 Channels

Goroutines 是 Golang 中非常重要的一个概念。Goroutines 是轻量级线程,由 Go 运行时管理。Channels 是 Golang 中用来在 Goroutines 之间进行通信的机制。下面是一个使用 Goroutines 和 Channels 的例子:

func hello(done chan bool) {
    fmt.Println("Hello world Goroutine")
    done <- true
}

func main() {
    done := make(chan bool)
    go hello(done)
    <-done
    fmt.Println("main function")
}

我们首先定义了一个 hello 函数,它会输出一个字符串并且向参数 done 的 Channel 中发送一个值。主函数中,我们创建了一个 done 的 Channel,并在一个 Goroutine 中执行了 hello 函数。最后我们从 done 的 Channel 中读取一个值,以确保 hello 函数已经执行完毕了。

以上是 Golang 的一些基本概念和语法,如果您希望了解更多详细信息可以上 官方网站 进行查阅。