【Golang学习之旅】Go 语言基础语法概览

server/2025/2/7 10:41:43/

文章目录

    • 前言
    • 1. Go 语言简介
      • 1.1 Go 语言是什么?
      • 1.2 Go 语言的应用场景
    • 2. Go 语言开发环境
      • 2.1 安装 Go
      • 2.2 配置 Go 环境
      • 2.3 Hello, World!(第一个 Go 程序)
    • 3. Go 语言基础语法
      • 3.1 变量与常量
      • 3.2 数据类型
      • 3.3 条件判断与循环
      • 3.4 数组与切片(slice)
      • 3.5 Map(哈希表)
    • 4. Go语言函数
    • 5. Go语言并发编程(Goroutine & Channel)
      • 5.1 Goroutine(轻量级线程)
      • 5.2 Channel(通道)

前言

✅ 适合人群: Golang 新手 | 后端开发者 | 面试求职者
✅ 文章亮点: 语法详解 + 实战代码 + 高质量示例
✅ 目标: 10 分钟快速掌握 Golang 基础语法,助你高效写项目!

1. Go 语言简介

1.1 Go 语言是什么?

Go 语言(Golang)是 Google 开发的一门 静态强类型并发支持强语法简洁 的编程语言,广泛应用于后端开发云计算微服务区块链等领域。
🔹 Go 语言的 4 大核心特点:
✅ 语法简洁(减少代码冗余,开发高效)
✅ 高性能(比 Python 快,比 Java 简单)
✅ 内置并发(Goroutine 让并发更简单)
✅ 跨平台(支持 Windows、Linux、Mac)

1.2 Go 语言的应用场景

📌 后端开发(Gin + GORM)
📌 微服务架构(gRPC + Docker + Kubernetes)
📌 高并发系统(消息队列、短链接)
📌 云计算(K8s、Serverless)
📌 区块链(Ethereum、Hyperledger)

2. Go 语言开发环境

2.1 安装 Go

👉 官网下载 Go:https://go.dev/dl/

2.2 配置 Go 环境

Windows / macOS / Linux 安装后,执行以下命令检查环境:

go version  # 查看 Go 版本
go env      # 查看 Go 配置

2.3 Hello, World!(第一个 Go 程序)

创建 main.go 文件,写入以下代码:

packge main import "fmt"func main() {fmt.Println("Hello Golang!")
}

执行代码命令:

go run main.go

3. Go 语言基础语法

3.1 变量与常量

变量声明

package mainimport "fmt" func main() {var name string = "Golang"     // 标准声明var age int = 20               // 显示声明city := "深圳"                 // 类型推导fmt.Println(name, age, city)  // 控制台输出    
}

常量

const Pi = 3.141592   // 常量不能被修改
const (Monday = 1TuesdayWednesday
)

3.2 数据类型

类型说明
int整型
float浮点数
string字符串
bool布尔值
array数组
slice切片
map哈希表
struct结构体
var a int = 10
var b float64 = 3.1415
var c bool = true
var d string = "张三"
fmt.Println(a, b, c, d)

3.3 条件判断与循环

if age := 18 age >= 18 {fmt.Plintln("成年人")
} else {fmt.Plintln("未成年人")
}
switch day := "Monday"; day {
case "Monday":fmt.Println("今天是周一")
case "Friday":fmt.Println("今天是周五")
default:fmt.Println("普通工作日")
}
for i := 0; i <= 5; i++ {fmt.Println(i)
}

3.4 数组与切片(slice)

arr := [3]int{1, 2, 3}   // 数组,长度固定
slice := []int{4, 5, 6, 7}  // 切片,长度可变
fmt.Println(arr, slice)

使用append函数可以向切片末尾追加一个或多个元素。如果追加的元素超出了当前切片的容量,append会分配一个新的底层数组,并将原切片的内容以及新元素复制到新数组中。

slice = append(slice, 7, 8)  // 追加元素
fmt.Println(slice[1:3])      // 切片截取

3.5 Map(哈希表)

person := map[string]int{"Alice": 25, "Bob": 30}
fmt.Println(person["Alice"])person["Zhangsan"] = 24
delete(person, "Bob")

4. Go语言函数

func add(a int, b int) int {return a+b
}func main() {result := add(7, 9)fmt.Println(result)
}

匿名函数

sum  := func(a, b int) int { return a + b}
fmt.Println(sum(45, 9))

5. Go语言并发编程(Goroutine & Channel)

5.1 Goroutine(轻量级线程)

package mainimport ("fmt""time"
)func hello() {fmt.Println("Hellon Goroutine!")
} func main() {go hello()time.Sleep(time.Second)
}

5.2 Channel(通道)

package mainfunc main(){ch := make(chan string)go func() {ch <- "Hello, Channel!"}()fmt.Println(<-ch)
}

http://www.ppmy.cn/server/165656.html

相关文章

Day48_20250130【回校继续打卡】_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II

Day48_20250130_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II 20250130补完 739.每日温度 题目 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0…

Java_类加载器

小程一言类加载器的基础双亲委派模型核心思想优势 各类加载器的职责 类加载器的工作流程举例&#xff1a;如何在Java中使用类加载器启动类加载器、扩展类加载器与系统类加载器输出解释自定义类加载器 类加载器与类冲突总结 小程一言 本专栏是对Java知识点的总结。在学习Java的过…

补小识JVM中的分代收集理论

JVM的分代收集理论是一套符合大多数程序运行实际情况的经验法则。它基于两个主要的分代假说&#xff1a;弱分代假说和强分代假说。弱分代假说认为&#xff0c;绝大多数对象都是朝生夕灭的&#xff1b;而强分代假说则认为&#xff0c;熬过越多次垃圾收集过程的对象就越难以消亡。…

AI大模型评测对比2—ChatGPT对比DeepSeek

近期&#xff0c;DeepSeek 凭借其超高的性价比与卓越性能&#xff0c;在国内外各大社交媒体平台上赚足了眼球。令人瞩目的是&#xff0c;它仅耗费 2048 块显卡&#xff0c; 600 亿美元的成本&#xff0c;便成功训练出了可与顶级模型比肩的 Deepseek - V3 模型。这与美国公布的一…

3 卷积神经网络CNN

1 Image Classification (Neuron Version) – 1.1 Observation 1 1.2 Observation 2 如果不同的receptive field需要相同功能的neuron&#xff0c;可以使这些neuron共享参数 1.3 Benefit of Convolutional Layer 2 Image Classification (Filter Version) 不用担心filter大小…

mysql8的并行复制介绍

mysql8的并行复制介绍 一、写在前面 大家平时在维护数据库时,肯定遇到过主从复制延迟的问题。传统的复制方式是单线程按顺序执行,这就像排队买票,每个事务只能一个一个处理,遇上高并发场景,等待时间就会变长。为了解决这个问题,MySQL 从 5.6 版本起就开始支持多线程复制…

ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景

1. 对象属性简写 1.1 基本语法 // 传统写法 const name John; const age 25; const user {name: name,age: age };// ES6 简写语法 const user {name,age };1.2 实际应用场景 // 1. 函数返回对象 function createUser(name, age, email) {return {name,age,email}; }// …

visual studio安装

一、下载Visual Studio 访问Visual Studio官方网站。下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 在主页上找到并点击“下载 Visual Studio”按钮。 选择适合需求的版本&#xff0c;例如“Visual Studio Community”&#xff08;免费版本&#xff09;&#x…