没人告诉你这一点:当你同时学习两种语言时,最难的错误并不是逻辑错误。而是你的手指以快于大脑反应的速度敲错了语言的语法的那些时刻。
如果你在学习 Go 语言的同时还在经常编写 JavaScript,比如在一个标签页中做前端项目,在另一个标签页中做后端服务,那么你可能已经感受到了这种思维上的剧烈切换,以下是一些真正有帮助的建议。
变量声明陷阱
JavaScript 提供了 let、const 和 var。Go 也提供了 var,但在函数内部还可以使用 := 进行简短变量声明。这是一个容易出错的互换操作:
// JavaScript
const name = "阿米娜";
let count = 0;
// Go
name := "阿米娜"
var count int
肌肉记忆的冲突是双向的:你可能会在 .go 文件中写出 const,或者出于习惯在 JavaScript 中写出 :=。此外,Go 的 := 仅在函数体内有效,这又增加了一层复杂性:包级别的变量需要使用完整的 var 形式。
静态类型
这是更大的思维转变,它不仅仅关乎语法,更关乎语言对你的期望。
在 JavaScript 中,你可以不假思索地这样做:
function add(a, b) {
return a + b;
}
add(2, 3); // 5
add("2", "3"); // "23"
在 Go 中,编译器甚至在你运行任何代码之前就会阻止你:
func add(a int, b int) int {
return a + b
}
尝试在需要 int(整数)的地方传入字符串,Go 根本无法编译。来自 JavaScript 的你,习惯了类型强制转换在背后默默为你处理一切,起初会觉得 Go 拒绝猜测的做法非常严格。但过一段时间后,你不再觉得它严格,反而开始觉得这是一种
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。