Java 开发者 1 天看懂 Go 核心语法(对照表 + 可运行代码)
📅 2026/7/18 22:10:48
👁️ 次浏览
本文为《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/7/18 22:10:48
代码质量度量:复杂度与坏味道的自动识别实践
一、质量靠人盯的不可持续性
Code Review 靠资深工程师凭感觉挑毛病。"这个函数太长了""这圈太复杂了"。感觉准,但不可规模化,也不可复现。
人一累,标准就松。…
📅 2026/7/18 22:09:47
依据工信部《新媒体智能视频生成平台评估导则》G/SZKJ 0004-2024 评测框架,本文基于统一测试数据集、标准化量化指标,完成文本生成视频(T2V)、图像生成视频(I2V)两类主流 AI 视频生成技术横向实测。全文覆盖…
📅 2026/7/18 22:09:47
快手视频下载神器KS-Downloader:三步搞定无水印高清下载 【免费下载链接】KS-Downloader 快手(KuaiShou)作品视频/图片下载工具 项目地址: https://gitcode.com/gh_mirrors/ks/KS-Downloader
还在为无法保存喜欢的快手视频而烦恼吗&am…
📅 2026/7/18 23:45:41
当下运动消费市场持续升温,运动装备、健身器材、运动周边、场馆耗材等产品需求稳步上涨。很多运动实体店、体育商户、场馆经营者,都想搭建专属运动商城网站,打通线上销售渠道。但多数自建商城存在流量少、曝光低、转化差、功能杂乱等问题&…
📅 2026/7/18 23:45:41
把页面秩序感有没有条理放进真实使用情境里观察,瑞德克斯是否重视基础感受就会更清楚。像调整账户信息设置这种步骤,最能体现平台是否把安全提醒和操作说明安排得稳妥。这些细节拼在一起,才构成瑞德克斯比较自然、也比较稳健的整体印象。从另…
📅 2026/7/18 23:45:41
政企内网部署AI会议助手,需要解决哪些实际问题?
随着大模型、语音识别和知识检索能力逐步进入办公场景,AI会议助手已经不再局限于简单的录音转文字。实时转写、发言人区分、会议纪要生成、重点事项提取和历史会议检索,正在成为会议…
📅 2026/7/18 23:45:41
EasyMarkets:经纪商平台综合实力的理性评估经纪商平台的综合表现,往往体现在看似普通的环节里:规则是否清楚,提示是否及时,界面是否顺手,客服是否能解释到位。以EasyMarkets为对象进行观察时,应…
📅 2026/7/18 23:45:41
一、字符串Hash1.时间复杂度:O(Σlen)2.思路:(1)把字符串转化为一个数字;(2)对数字进行取模(除数为质数);(3)为保证准确性,进行两次上述操作后,构成数对塞入集合。3.代码如下:#include <bits…
📅 2026/7/18 23:44:41
更多请点击:
https://kaifayun.com
第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…
📅 2026/7/18 0:00:33
更多请点击:
https://codechina.net
第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…
📅 2026/7/18 0:00:33
作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…
📅 2026/7/18 0:00:33
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/18 4:14:57
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/18 0:00:49
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/18 16:05:28
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/18 7:01:02
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/18 17:01:33
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/18 5:00:56