在前端我们主要使用JavaScript作为主要开发语言,我们来逐一对比JavaScript与Golang的语法特性,来帮助前端工程师更快入门Golang。
变量声明
在JavaScript中,使用var或let关键字来声明变量
{
let a = 10
var b = 1
}
在Golang中,同样使用var关键字声明变量
var a = 10
由于Golang是一门强类型的语言,如果省略了类型声明,编译器会做类型推导,上面这种变量声明方式实际上等价于
var a int = 10
在函数中,使用:=符号可以更简便的声明并初始化变量
func main() {
a := 10
}
除了变量,我们还有声明常量的需求,Golang和JavaScript常量的声明方式也是一样的
const a = 10
条件语句
JavaScript条件分支语法继承自C语言
let a = 10
if (a > 0) {
console.log(a)
}
Golang的条件分支不带小括号,支持在条件里写多个表达式,用;号分割,并且在条件里声明的变量只在if条件模块内部有效
if a := 10; a > 0 {
fmt.Println(a)
}
条件分支中最容易忽略的是switch结构。
在JavaScript中,每个case要使用break关键字终止流程
switch (fruit) {
case "banana":
// ...
break
case "apple":
// ...
break
default:
// ...
}
Golang很人性化,每个case会自动break
switch fruit {
case "banana":
// ...
case "apple":
// ...
default:
// ...
}
如果需要顺序执行代码,还加fallthrough关键字
循环语句
在JavaScript中,循环语句有while、do while、for、for in、for of
在Golang中,没有那么多花里胡哨的东西,只有万能的for
for i := 0; i < 100; i++ {
fmt.Println(i)
}
for的起始条件、递增条件、结束条件都是可选的,甚至可以不带任何条件,就表示一个死循环
for {
// ...
}
函数
在JavaScript中,函数用function关键字声明
在Golang中,函数用func关键字声明,并且与JavaScript一样,函数是一等公民,支持闭包
func createIncrementor(start int) func() int {
return func () int {
start++
return start;
}
}
func main() {
inc := createIncrementor(5);
inc() // 5
inc() // 6
inc() // 7
}
欢迎关注我的公众号“野生程序员的修炼”,原创技术文章第一时间推送。