Go语言快速入门指南(面向Java工程师)
作为一名有多年 Java 经验的工程师,学习 Go 语言会是一个有趣且高效的过程。Go 以简洁的语法、内置并发和高性能著称,非常适合服务端开发和云原生场景。本文将系统介绍 Go 的核心知识,并在关键处与 Java 对比,帮助你快速上手。
1. 语言概述
Go(又称 Golang)由 Google 开发,2009 年发布。设计目标是:
- 简洁:语法元素少(25 个关键字 vs Java 的 50+)。
- 高效:编译为原生机器码,无需虚拟机。
- 并发:goroutine + channel 内置支持并发。
- 工程化:标准库强大,依赖管理简单。
与 Java 的核心区别
- 编译方式:Java 运行在 JVM 上,Go 直接编译为机器码。
- 面向对象模型:Java 有类和继承,Go 用 struct + 接口 + 组合。
- 并发模型:Java 基于线程,Go 基于 goroutine + channel。
- 错误处理:Java 用异常,Go 用返回值 + error。
2. 基础语法
2.1 程序结构
package main
import "fmt"func main() {fmt.Println("Hello, Go")
}
- Go:入口是
main()
,必须在main
包。 - Java:入口是
public static void main(String[] args)
,必须放在类里。
2.2 变量声明
var a int = 10
b := 20 // 类型推断
- Go 的声明顺序是
var 变量 类型
,而 Java 是类型 变量
。 - Go 支持
:=
短变量声明。 - Go 自动赋零值,不会有
null pointer
问题。
2.3 控制结构
if x > 0 { fmt.Println("positive") }for i := 0; i < 10; i++ { fmt.<