作为现在区块链开发的主流语言,golang是区块链行业者必须要掌握的语言之一。得益于脚本语言的开发速度和c语言的运行速度,golang在09年推出以来广受欢迎,非常有希望成为今后的第一语言。因此,学好golang非常重要!
学习资料来自简书的Tuberose,链接:https://www.jianshu.com/p/bed39de53087,写这个博客来记录学习要点和历程,方便以后查阅。
在线golang IDE: https://wide.b3log.org/playground
1.包(package)和导入(import)
每一个go程序都是由包组成的,程序运行的入口是主包main,写法:package main
关键字import是导入包和库,来看一个例子:
package main
import "fmt"
func main() {
fmt.Println("hello world!")
}
例子的第一行为定义主包main,第二行导入包fmt,注意包的名字一定要加双引号。打印函数Println里的P必须大写,因为它是从fmt包中导出的,导出的函数或方法的首字母必须大写,例如:math.Pi,如果写成math.pi会报错。
如果要导入多个包,应该这样写:
import (
"fmt"
"math/rand"
)
加一对括号,两个包最好分行写
2、函数(function)
声明函数的关键字是:func,先看一个例子:
package main
import "fmt"
//声明一个函数add,有两个参数x和y,返回值类型为int整形
func add(x int, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
参数的写法和其他语言有很大不同,参数的类型是放在参数名的后面:x int,这个需要注意!参数后面跟着的int是返回值的类型
当两个或多个参数为同一类型时,可以省略前面的类型只在最后声明,例如:
x, y, z, q, w int
函数可以有多个返回值,每个返回值都需要说明类型:
package main
import "fmt"
func swap(x, y string) (string string) {
return x,y
}
func main() {
fmt.Println(swap("hello", "world"))
}
此例子中返回值为string(字符串)类型,输出结果为:hello world
命名返回值:函数的返回值可以命名,并且像参数中的变量一样用。看一个例子:
package main
import "fmt"
func abc(sum int)(x,y int){
x=sum*3
y=x+8
return
}
func main() {
fmt.Println(abc(10))
}
例子中,给函数abc的返回值命名为x和y,并在函数内对返回值进行运算