Go 基础语法
Go(也叫Golang)是一种由Google开发的编程语言,以其简洁、高效和并发处理能力强而广受欢迎。以下是一些Go语言的基础语法:
1. 基本结构
Go程序由package、import和main函数组成。main函数是程序的入口。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
2. 变量声明
Go中变量声明可以通过var关键字、:=简短声明语法来进行。
使用var声明变量:
var x int
x = 10
使用:=简短声明:
x := 10
3. 数据类型
Go有多种基本数据类型:
整数类型:int, int8, int16, int32, int64等。
浮动点类型:float32, float64。
布尔类型:bool。
字符串类型:string。
var age int = 30
var name string = "Go"
var price float64 = 19.99
4. 常量
常量使用const声明:
const Pi = 3.14
5. 控制结构
Go的控制结构包括if、else、for、switch等。
if语句:
if x > 0 {
fmt.Println("Positive")
} else {
fmt.Println("Non-positive")
}
for循环:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
switch语句:
switch day := 3; day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
default:
fmt.Println("Other day")
}
6. 函数
Go中函数的定义和调用很简单。函数定义如下:
func add(a int, b int) int {
return a + b
}
result := add(5, 3)
fmt.Println(result)
如果多个参数类型相同,可以省略后面的类型:
func add(a, b int) int {
return a + b
}
7. 数组和切片
数组: 数组长度是固定的,声明数组时需要指定长度。
var arr [3]int = [3]int{1, 2, 3}
切片: 切片是动态数组,可以随时扩展。
var slice []int = []int{1, 2, 3}
slice = append(slice, 4)
fmt.Println(slice)
8. 结构体
结构体是自定义数据类型,包含多个字段。
type Person struct {
Name string
Age int
}
var p Person
p.Name = "John"
p.Age = 30
9. 方法
Go中的方法是与特定类型绑定的函数。
type Circle struct {
Radius float64
}
func (c Circle) Area() float64 {
return 3.14 * c.Radius * c.Radius
}
var c Circle
c.Radius = 5
fmt.Println(c.Area())
10. 并发(goroutines和channels)
Go的并发通过goroutines和channels实现。goroutine是轻量级的线程,可以并发执行。
创建goroutine:
go func() {
fmt.Println("Hello from goroutine")
}()
channels:
ch := make(chan int)
go func() {
ch <- 42
}()
result := <-ch
fmt.Println(result)
11. 错误处理
Go不使用异常处理,而是通过返回错误值来处理异常情况。
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("cannot divide by zero")
}
return a / b, nil
}
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}
这些是Go的基础语法。如果你有更具体的需求或问题,随时可以问我!
本文来自博客园,作者:泥鳅炖土豆,转载请注明原文链接:https://www.cnblogs.com/tomAndCatQingkuang/p/18734420

浙公网安备 33010602011771号