go语言基础

Go语言基础

go语言由google开发,对分布式系统开发友好

安装与设置

  1. Go官网下载并安装Go。
  2. 配置环境变量:
    • 设置GOPATH(工作区路径)。
    • GOBIN添加到系统的PATH中。

基本语法

首先进行一个基础的hello world程序编写

package main

import "fmt"

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

go语言基础组成包括包声明、引入包、函数、变量、语句和表达式、注释

数据类型

  • 基本类型:整型int, 浮点数float64, float32,字符串类型string, 布尔类型bool
  • 复合类型:数组类型array, 切片类型slice, map, struct

变量声明

// var identifier type
var name string = "Go语言"
var name, name2 string //同时声明两个变量,如果无显示初始化,则会默认初始化为空字符串
// 其它类型默认初始化为nil
var p *int       // 指针
var s []int      // 切片
var m map[int] int // 映射
var ch chan int  // 通道
var f func() int    // 函数
var i interface{} // 接口
// 根据值自动判断类型
var i = 3
// 也可以简短声明
i := 3 // 但是需要注意如果已经被声明,此时再声明是不允许的,只能在函数体中允许使用
// 等价于var i int i = 3
var ( // 用于声明全局变量
    a int = 5
    b bool = True
)

常量声明

const identifier [type] = value
const (
    a = iota // 特殊常量,可以被编译器修改的常量,会被初始化为0
    b // 1
    c // 2
)

控制结构

if condition {
     // 条件为真时执行
} else {
     // 条件为假时执行
}

for i := 0; i < 10; i++ {
     fmt.Println(i)
}
for ture {
    // 无限循环
}

函数

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

并发

Go语言内置支持并发,通过goroutinechannel实现。

go func() { // go 声明协程
     fmt.Println("并发执行")
}()

ch := make(chan int)
ch <- 42 // <-声明通道
fmt.Println(<-ch)

go接收者

go接收者可以用来实现类似类的功能,go语言中没有类的概念,简单来讲接收者其实就是我要使用的东西或者我要改的东西,就可以用作接收者。比如方法是雕刻,那么石头就是接收者,雕刻要雕石头。

func (r ReceiverType) 方法名(参数) 返回值 {
    // 可通过r访问接收者的字段/方法
}
// ReceiverType必须是当前包定义的类型,不能是内置类型int
// 例子
type Coffe struct { temp float64}
func (c Coffe) heat() { c.temp += 10 }
func (c *Coffe) heat() { c.temp += 10 }
c Coffe // 值接收者,适用于不需要修改源数据,且数据较少时
c *Coffe // 指针接收者,适用于需要修改源数据,且数据较多时

go语言模式匹配

go语言中ok模式匹配中可以用来检查键值是否存在,如果键值存在,则ok为true, 否则为false,_代表不获取键对应的值,忽略返回值

_, ok := myMap[key]
if ok {
    fmt.Println("键存在,值为:")
} else {
    fmt.Println("键不存在")
}
posted @ 2025-04-15 00:06  LemHou  阅读(56)  评论(0)    收藏  举报