当前位置: 首页 > news >正文

【Go入门篇】第一章:从 Java/Python 开发者的视角入门go语言

Go 语言(Golang)是由 Google 开发的一门静态强类型、编译型的编程语言,凭借其简洁性、高效性和强大的并发支持,成为后端开发、云计算和微服务的热门选择。本篇文章将带你快速入门 Go 语言,了解其基础概念,并通过 Java/Python 的对比帮助理解。


1. 为什么学习 Go?

对于 Java 或 Python 开发者,Go 具有以下几个突出的特点:

✅ 更简单的语法

  • 没有类和继承,使用 结构体+接口 组合实现 OOP。
  • 减少了很多 Java 的 样板代码(boilerplate)
  • 不需要手动管理虚拟机(JVM),部署更轻量。

✅ 高效的并发支持

  • Goroutine 轻量级线程,比 Java 线程池管理更简单。
  • channel 机制让并发编程更安全。

✅ 编译速度快,部署简单

  • Go 是 静态编译 语言,编译后直接生成可执行文件,无需额外依赖。
  • 适用于构建 微服务,像 Kubernetes、Docker 都是用 Go 开发的。

2. 安装 Go 开发环境

🔹 安装 Go

从 官方 Go 官网 下载并安装 Go。

🔹 配置环境变量(可选)

安装后,可以运行以下命令检查 Go 版本:

$ go version
go version go1.21.0 darwin/amd64

如果你使用 Go Modules(推荐),建议设置 GOPATH

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

3. 第一个 Go 程序:Hello, World!

在 Go 语言中,所有代码都必须属于某个 package(包)。创建一个名为 hello.go 的文件,写入以下代码:

package main // 入口包,必须是 main

import "fmt" // 导入 fmt 包

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

🔹 运行代码

$ go run hello.go
Hello, World!

🔹 编译成二进制文件

$ go build hello.go
$ ./hello
Hello, World!

4. Go 基础语法快速上手

🔹 变量与常量

Go 语言是强类型语言,但支持 类型推导

var name string = "Go"
var age int = 10
const pi = 3.14

// 使用 := 进行变量自动推导
lang := "Golang"

🔹 数据类型

var a int = 100
var b float64 = 3.14
var c bool = true
var d string = "Hello"
var e []int = []int{1, 2, 3} // 切片(类似 Python 的 list)
var f map[string]int = map[string]int{"apple": 5, "banana": 3} // 字典

🔹 条件语句(if/else)

if age > 18 {
    fmt.Println("成年人")
} else {
    fmt.Println("未成年人")
}

🔹 循环(for)

Go 没有 while,所有循环都用 for 表示:

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

🔹 函数

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

🔹 多返回值

func divide(a, b int) (int, int) {
    return a / b, a % b
}

5. Go 语言 vs Java/Python

特性GoJavaPython
编译方式静态编译JVM 字节码解释执行
并发模型Goroutine线程池asyncio
面向对象支持结构体+接口类和继承类和继承
运行时管理GC 自动回收GCGC
依赖管理Go ModulesMaven/Gradlepip

6. 小结

  • Go 语言语法简洁,学习曲线相对平缓。
  • 适合后端开发、微服务和高并发场景。
  • Goroutine 提供高效并发支持,比传统线程更轻量。
  • Go Modules 让依赖管理更简单。

下一篇,我们将深入学习 Go 语言的 数据结构控制流程,敬请期待!🎯


📢 你的下一步行动:

  1. 安装 Go 并运行 Hello, World!
  2. 尝试编写自己的第一个 Go 函数。
  3. 关注本系列博客,继续学习 Go 语言!🚀

相关文章:

  • 半导体制造中的“魔法盾牌”:二氧化硅
  • 前端知识速记--HTML篇:HTML5的新特性
  • vLLM专题(六)-Pooling模型
  • floodfill算法系列一>扫雷游戏
  • vue基础(十)
  • 如何使用 Ollama 在本地设置和运行 DeepSeek R1
  • 如何使用 Docker 搭建 FastAPI 环境, 本地仅编辑代码
  • 力扣LeetCode: 931 下降路径最小和
  • 【小白学AI系列】NLP 核心知识点(七)Embedding概念介绍
  • 【Elasticsearch】`nested`字段
  • 巨控GRM530系列的远程模块用于PLC远程上下载方案
  • 9.综合调试|输入不能存在空格|desc存在None|输出权值和ID|函数重名|修改文件名|权值和实际关键词出现次数(C++)
  • 网工项目理论1.10 路由结构设计
  • 999感冒灵抖音KOL内容营销案例拆解
  • 2.17日学习总结
  • javacv将视频切分为m3u8视频并播放
  • 三级等保项目设备清单及高风险项整改方向
  • 嵌入式 lwip http server makefsdata
  • Node.js 异步并发控制:`p-map` 和 `p-limit` 的使用与对比
  • ubuntu在线安装PostgreSQL(pgsql)
  • 神舟十九号载人飞船因东风着陆场气象原因推迟返回
  • 解放日报头版:人民城市共建共享展新卷
  • 君亭酒店:2024年营业收入约6.76亿元, “酒店行业传统增长模式面临巨大挑战”
  • 日本大米价格连续16周上涨,再创最高纪录
  • 央行回应美债波动:单一市场、单一资产变动对我国外储影响总体有限
  • “中国游”带火“中国购”,“即买即退”让外国游客购物更丝滑