Java 开发者 1 天看懂 Go 核心语法(对照表 + 可运行代码)
本文为《Java工程师转Go实战》连载第 3 篇 / 共 20 篇上一篇从 Maven 到 go mod下一篇Java 只有引用Go 的指针到底是什么类比开场学 Go 最快的方式不是背手册而是 constantly 问自己「这句 Java 代码Go 里怎么写」下面这张对照表 可运行代码够你一天建立肌肉记忆。一、基础语法对照速查特性JavaGo入口public static void mainfunc main()变量int x 1;x : 1或var x int 1常量finalconst类class User {}type User struct {}方法void save()func (u *User) Save()可见性public/private首字母大小写继承extends组合 embedding接口interfaceinterface隐式实现空值nullnil集合ListTslice、map循环for/while只有for可模拟 while异常try/catch多返回值error泛型一直有Go 1.18[]T、map[K]V包管理import com.xxximport github.com/xxx二、变量与类型JavafinalStringname张三;intage28;varlistList.of(1,2,3);Goname:张三// 短变量声明最常用varageint28list:[]int{1,2,3}constMaxRetry3注意:只能在函数内使用包级变量用var。三、控制流ifGo 的 if 可以带初始化语句iferr:doSomething();err!nil{returnerr}// err 作用域仅在 if 块内——Java 没有等价写法但很实用forGo 没有 while用 for 代替// 经典三段式fori:0;i10;i{fmt.Println(i)}// 等价 whilen:0forn10{n}// 无限循环for{break}switch默认不 fallthroughswitchday{caseMon,Tue:fmt.Println(工作日)caseSat,Sun:fmt.Println(周末)default:fmt.Println(其他)}// 无需 break除非显式 fallthrough四、函数多返回值是常态JavapublicOptionalUserfindById(Longid){// ...}GofuncFindByID(idint64)(*User,error){ifid0{returnnil,errors.New(invalid id)}returnUser{ID:id},nil}user,err:FindByID(1)iferr!nil{// handle}习惯养成Go 里几乎每个可能失败的操作都返回error不是异常。五、集合slice 与 mapslice动态数组类似 ArrayListnums:[]int{1,2,3}numsappend(nums,4)// 追加sub:nums[1:3]// 切片 [2,3]共享底层数组fmt.Println(len(nums),cap(nums))mapm:map[string]int{alice:100,bob:90,}m[carol]85score,ok:m[alice]// ok 表示 key 是否存在if!ok{// not found}六、结构体与方法typeUserstruct{IDint64Namestring}// 值接收者func(u User)Greet()string{returnHello, u.Name}// 指针接收者要修改字段时用func(u*User)Rename(namestring){u.Namename}接收者类比 Java何时用值(u User)操作副本只读、小结构体指针(u *User)操作 this修改状态、大结构体七、完整可运行示例packagemainimport(fmtstrings)typeUserstruct{IDint64Namestring}func(u*User)NormalizeName(){u.Namestrings.TrimSpace(u.Name)}funcFilterAdults(users[]User,minAgeint)[]User{// 简化示例真实场景用 struct 带 Age 字段returnusers}funcmain(){u:User{ID:1,Name: 李四 }u.NormalizeName()fmt.Printf(%v\n,u)scores:map[string]int{go:95,java:90}fork,v:rangescores{fmt.Println(k,v)}}八、Java 人第一天易错点unused import 编译报错— Go 不允许未使用的 import分号— 编译器自动插入一般不手写大小写导出—User可导出user不可slice 截取共享底层数组— 改 sub 可能影响原 slicemap 并发读写— 会 panic需sync.Map或加锁 面试追问:和var区别:是声明赋值类型推断var可包级声明可只声明不赋值零值。Go 有哪些零值数字 0、bool false、string “”、指针/slice/map/channel/interface 为 nil。slice 和 array 区别[3]int是定长数组值类型[]int是切片引用底层数组可动态 append。 一句话总结把 class 换成 struct、把异常换成 error、把 ArrayList 换成 slice——Go 的骨架一天就能搭起来难的是后面并发和工程习惯。

相关新闻

好用的开放式耳机有哪些?2026年值得选购的高性价比开放式耳机推荐

好用的开放式耳机有哪些?2026年值得选购的高性价比开放式耳机推荐

近年来,开放式蓝牙耳机因其“不入耳、佩戴舒适、听感自然”的特性,在运动、通勤、办公等场景都可以看到很多人佩戴。相比传统的入耳式耳机,开放式蓝牙耳机在提供舒适佩戴体验的同时还能保持耳道舒畅,对耳道敏感的人群友好&#xf…

2026/7/26 18:52:38 阅读更多 →
AIperson

AIperson

这是目前AI领域最值得讨论的话题之一。如果把时间放长到未来10~30年,AI的发展很可能不仅改变工作方式,还会深刻影响人的生活方式、人际关系,甚至社会结构。一、AI会成为每个人的“第二大脑”现在我们遇到问题会:上网搜…

2026/7/25 22:33:43 阅读更多 →
源站隐身 + 流量清洗,高防 IP 品牌实力精选

源站隐身 + 流量清洗,高防 IP 品牌实力精选

现如今网络攻防对抗愈发激烈,多数企业业务被攻击的核心根源,无非两点:源站IP暴露、恶意流量无法彻底清洗。很多用户踩坑低价高防产品,普遍遇到这些问题:防护只做表面拦截,真实服务器IP轻易被扒取、遭遇精准…

2026/7/25 7:34:22 阅读更多 →

最新新闻

智能体技术提升个人效率的实践与优化

智能体技术提升个人效率的实践与优化

1. 智能体技术如何重塑个人效率上周我在整理年度工作复盘时,发现一个惊人事实:过去三个月里,我平均每天要花费2.7小时处理邮件归档、会议纪要整理、数据报表生成这类重复性工作。这促使我开始系统研究智能体技术(Agent Technology…

2026/7/27 7:35:28 阅读更多 →
羽毛球剪辑算法集锦

羽毛球剪辑算法集锦

目录 good-badminton 推荐,看起来还行 racquet-sports-analyzer huji 推理脚本: 羽球时刻 推荐: Badminton-Highlight-Extraction good-badminton 推荐,看起来还行 https://github.com/qwpyyx/Good-Badminton racquet-spor…

2026/7/27 7:35:28 阅读更多 →
C++高性能序列化与数据传输:大数据架构师的底层优化指南

C++高性能序列化与数据传输:大数据架构师的底层优化指南

1. 项目概述:从C基础到大数据架构的必经之路在技术这条路上,我见过太多开发者,尤其是那些从后端或大数据领域切入的朋友,对C的态度总是有些微妙。一方面,它被誉为“性能之王”,是构建底层基础设施、处理海量…

2026/7/27 7:35:28 阅读更多 →
GHelper终极指南:10MB轻量化工具如何彻底掌控华硕笔记本性能

GHelper终极指南:10MB轻量化工具如何彻底掌控华硕笔记本性能

GHelper终极指南:10MB轻量化工具如何彻底掌控华硕笔记本性能 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbo…

2026/7/27 7:35:28 阅读更多 →
(二十六)BLSG方案

(二十六)BLSG方案

先看方案设计: 插入一条分析:假设哈希函数H是一个随机预言机。如果CDH问题是困难的, 那么BLSG签名方案在EU - CMA安全模型下是可证明安全的, 约化损失为2根号qH,其中qH是对随机预言机的哈希查询次数。规约损失是如何得到的呢?慢慢分析,继续往下看证明如下: 假定存在一…

2026/7/27 7:35:28 阅读更多 →
Go代码混淆实战:使用Garble保护API密钥与敏感配置

Go代码混淆实战:使用Garble保护API密钥与敏感配置

1. 项目概述:为什么Go开发者需要关注代码混淆?最近在几个Go语言社区里,经常看到有朋友在讨论API密钥泄露的问题。有人把带密钥的代码误提交到了公开仓库,没过多久就收到了云服务商的异常账单提醒;也有人发现自己的后端…

2026/7/27 7:34:27 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻