1. package import和export
GO语言中package用于封装一个相对独立的功能提供给外部使用。package有如下特征
1.1 package会对应一个目录
这点与Java类似
1.2 package中的源代码存放目录是package最后一个/结束的准,如package math/rand,那么所源代码都在rand目录下
1.3 main是一个特殊的package名字,类似Java的main函数,GO的可执行程序必须在main package下
1.4 package中的源代码存放目录是package最后一个/结束的准,如package math/rand,那么所源代码都在rand目录下
1.5 源代码文件中,以大写字母开头的函数才会被导出(外部访问)。这点类似Java和访问权限控制,只是太隐晦了。
但是比Python的约定下划线(_)开头的函数是内部函数但是外部还是可以访问有进步一些。
1.6 import package两种形式
import "fmt"
import "math/rand"
import(
"fmt"
"mat/rand"
)
2. function
2.1 函数申明可以没有参数,但是函数申明最末尾必须要有括号
这点不像Ruby那么灵活,函数申明和调用都可以省略到括号。 Python在某个版本中也可以省略,但是后来发现代码风格不统一,所以在Python3.0里面肯定不支持不带括号的函数申明和调用了。
package main
import "fmt"
func main() {
fmt.Println(add(42, 13))
}
2.2 函数的参数和返回值类型,都是写在最后
这点与Java,C完全是反的,所以也好记。当然也没有什么对与错,习惯就好了。
package main
import "fmt"
func add(x int, y int) int {
return x + y
}
2.3 参数类型如果相同,前面类型申明可以省略,只在最后定义前面所有变量类型
package main
import "fmt"
func add(int, y int) int {
return x + y
}
2.4 可以返回多个值
这个是高级语言必须的。Java,C这种不支持多返回类型的,当通过返回数组来替代时,然后通过index取数组的值又是魔鬼数字,这时候真抓狂!
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
2.5 函数体内的变量可以通过在函数申明中作为函数返回值
package main
import "fmt"
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main() {
fmt.Println(split(17))
}
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔