Go 安装
Go 小试牛刀 

Go 基础语法

Go(也叫 Golang)是一种静态类型、编译型语言,简洁且高效。以下是 Go 的一些基础语法:


1、包声明

每个 Go 程序都从 main 包开始,程序的入口点是 main 函数。

package main


2. 导入包

在 Go 中,你需要导入标准库或者第三方包来使用它们。

import "fmt"


3、声明变量

Go 语言中的变量可以通过 var 关键字声明,也可以使用短变量声明 :=。

var x int = 10
y := 20 // 自动推导类型


4、声明函数

函数用 func 关键字声明,main 函数是程序的入口。

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

5、常量

常量通过 const 关键字声明,值不能改变。

const PI = 3.14


6、数据类型

Go 支持多种基本数据类型,包括:

整数:int,int32,int64 等

浮动:float32,float64

布尔:bool

字符串:string


7、控制流

Go 支持常见的控制流结构,如 if,for,switch 等。

  • if 语句

if x > 10 {
    fmt.Println("x is greater than 10")
} else {
    fmt.Println("x is 10 or less")
}
  • for 循环

Go 只有 for 循环,其他的 while 或 do-while 需要用 for 实现。

for i := 0; i < 5; i++ {
    fmt.Println(i)
}
  • switch 语句

switch day := "Monday"; day {
case "Monday":
    fmt.Println("Start of the week")
case "Friday":
    fmt.Println("Almost weekend")
default:
    fmt.Println("Middle of the week")
}


8、数组与切片

数组是固定大小的,而切片是动态可变大小的序列。

数组

var arr [5]int
arr[0] = 10

切片

s := []int{1, 2, 3}
s = append(s, 4)  // 动态增加元素


9、结构体

结构体是 Go 中用于定义数据结构的一种方式。

type Person struct {
    Name string
    Age  int
}


10、接口

接口定义了对象的行为,不需要显式声明实现。

type Speaker interface {
    Speak() string
}
type Person struct {
    Name string
}
func (p Person) Speak() string {
    return "Hello, my name is " + p.Name
}


11、并发

Go 提供了内建的支持并发的工具——goroutine(协程) 和 channel。


  • 启动一个 goroutine,在函数或方法前加上go关键字即可

go func() {
    fmt.Println("This is a goroutine!")
}()


  • 使用 channel

ch := make(chan string)
go func() {
    ch <- "Hello from goroutine"
}()
msg := <-ch
fmt.Println(msg)