Java → Go 基础语法对照表(Java 开发者快速上手 Go)

内容分享3小时前发布 lwzzzzz_
0 0 0

许多 Java 开发者在学习 Go 时,最大的障碍并不是“不会写”,而是不知道该怎么“换一种方式写”
本文将通过 最常见的基础语法对照表,协助你用 Java 思维快速理解 Go 语法,降低学习成本。


1️⃣ 变量声明

场景

Java

Go

显式类型

int a = 10;

var a int = 10

类型推断

var a = 10;

a := 10

常量

final int a = 10;

const a = 10

要点

  • := 是 Go 最常用写法(函数内)
  • Go 不允许声明但不使用的变量(编译期直接报错)

2️⃣ 基本数据类型

Java

Go

int

int

long

int64

double

float64

boolean

bool

String

string

⚠️ Go 中 没有自动类型转换,必须显式转换。


3️⃣ 条件判断(if / switch)

if 判断

Java

if (a > 10) {
    System.out.println("big");
}

Go

if a > 10 {
    fmt.Println("big")
}

✔ Go 的 if 不需要括号
✔ 条件必须是 bool,不能写 if (a)


switch 判断

Java

switch (day) {
    case 1:
        break;
    case 2:
        break;
}

Go

switch day {
case 1:
case 2:
}

Go 的 switch 默认不需要 break,更安全。


4️⃣ 循环(for)

Java

Go

for

for

while

for

do-while

for

Java

for (int i = 0; i < 10; i++) {}

Go

for i := 0; i < 10; i++ {}

Go 只有一种循环:for


5️⃣ 方法 / 函数定义

Java

public int add(int a, int b) {
    return a + b;
}

Go

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

✔ 参数类型写在变量后
✔ 返回值类型写在参数列表后


6️⃣ 集合对照(最常用)

Java

Go

ArrayList

slice

HashMap

map

Set

map[T]bool

ArrayList → slice

Java

List<String> list = new ArrayList<>();
list.add("Java");

Go

list := []string{"Java"}
list = append(list, "Go")

HashMap → map

Java

Map<String, Integer> map = new HashMap<>();
map.put("A", 1);

Go

m := map[string]int{"A": 1}

7️⃣ 类 vs 结构体

Java

class User {
    private String name;
}

Go

type User struct {
    Name string
}

Go 没有 class,使用 struct + 接口
Go 通过 组合 替代继承


8️⃣ 接口(超级重大)

Java

interface Service {
    void run();
}

Go

type Service interface {
    Run()
}

✔ Go 接口是 隐式实现
✔ 不需要 implements


9️⃣ 异常处理

Java

Go

try-catch

error 返回值

RuntimeException

显式判断

Java

try {
    do();
} catch (Exception e) {}

Go

if err := do(); err != nil {
    return err
}

Go 强调 显式错误处理,代码更可控。


main 方法 & 程序入口

Java

public static void main(String[] args) {}

Go

func main() {}

✔ Go 程序从 main 包的 main() 函数开始


总结:Java 开发者学 Go 的关键点

✅ 语法更少,但更严格
✅ 并发更简单(goroutine + channel)
✅ 组合优于继承
✅ 错误处理更显式

Go 不是 Java 的替代品,而是 Java 能力的放大器。

© 版权声明

相关文章

暂无评论

none
暂无评论...