go语言学习一
每个go程序都由包构成程序从main包开始运行本程序通过导入路径“fmt”和“math/rand”来使用这两个包.按照约定,包名与导入路径的最后一个元素一致。例如,‘math/rand’包中的源码均以packagerand语句开始.
1. 包
每个go程序都由包构成
程序从main包开始运行
本程序通过导入路径“fmt”和“math/rand”来使用这两个包.
按照约定,包名与导入路径的最后一个元素一致。例如,‘math/rand’包中的源码均以package rand语句开始.
代码:
vim packages.go
import(
"fmt"
"math/rand"
)
func main() {
fmt.Println("I like the best number is ", rand.Intn(10))
}
运行代码:
2. 导入
次代码用圆括号将导入的包分成一组,这是‘分组’形式的导入语句。
当然你也可以编写多个导入语句,例如:
import "fmt"
import "math"
不过使用分组导入语句更好.。
代码:
package main
import(
"fmt"
"math"
)
func main() {
fmt.Printf("new you have %g problems.\n", math.Sqrt(7))
}
运行:
3.导出名
在go中,如果是一个名字以大写字母开头,那么那就是已导出的。例如,Pizza就是个已导出名,Pi也同样,它导出自math包。
pizza和pi并未以大写字母开头,所有它们是未导出的。
在导入一个包时,你只能引用其中已导出的名字。任何【未导出】的名字在该包外均无法访问。
执行代码,观察错误信息。
要修复错误,将请math.pi改名为math.Pi,然后再试着执行一次。
代码:
package main
import(
"fmt"
"math"
)
func main(){
fmt.Println(math.pi)
}
运行:
4.函数1
函数可接受零个或者多个参数
在本例中,add接受两个int类型的参数
注意类型的变量名在后面。
(参考这篇关于go生命语法的文章,了解为何使用这种类型声明的形式。)
代码:
package main
import "fmt"
func add(x int, y int) int {
return x + y
}
func main(){
fmt.Println(add(42, 13))
}
运行:
5.函数2
当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其他都可以省略。
在本例中
x int, y int
被简写成:
x, y int
代码:
package main
import "fmt"
func add(x, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
运行:
6.多返回值
函数可以返回任意数量的返回值
swap 函数返回了两个字符串。
代码:
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)
}
运行:
7. 带名字的返回值
go的返回值可被命名,它们会被视作定义在函数顶部的变量。
返回值的命名应当能反映其含义,它可以作为文档使用。
没有参数的return语句会直接返回已命名的返回值,也就是【裸】返回值。
裸返回语句应当仅用在下面这样的短函数中。在长的函数中它们会影响代码的可读性。
代码:
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))
}
运行:
更多推荐
所有评论(0)