开发环境VScode
Go 语言首先需要配置GOPATH环境变量
代码文件需要放置在GOPATH目录下的src文件夹下,下面是规范的目录代码目录结构
下面是一个规范的Go语言程序
main.go
package main
import (
"fmt"
"go_dev/day1/package_example/calc"
)
func main() {
sum := calc.Add(100, 300)
sub := calc.Sub(100, 300)
fmt.Println("sum=", sum)
fmt.Println("sub=", sub)
}
add.go
package calc
func Add(a int, b int) int {
return a + b
}
sub.go
package calc
func Sub(a int, b int) int {
return a - b
}
在另一个文件夹写的函数,必须大写,才能在外部被调用。
package main
import (
"fmt"
"go_dev/day1/goroute_example/goroute"
)
func main() {
var pipe chan int
pipe = make(chan int, 1)
go goroute.Add(100, 300, pipe)
sum := <-pipe
fmt.Println("sum=", sum)
}
这里演示的案例是开一个goroute, 调用另一个函数 ,上面的管道为引用类型。
package goroute
func Add(a int, b int, c chan int) {
sum := a + b
c <- sum
}
Go语言值类型和引用类型
Go中与C语言中指针的特性
func swap(a *int, b *int) {
temp := *a
*a = *b
*b = temp
}
func main() {
first := 100
second := 200
swap(&first, &second)
fmt.Println("first=", first)
fmt.Println("second=", second)
}
以及类Python风格的写法
func swap(a *int, b *int) {
temp := *a
*a = *b
*b = temp
}
func swap1(a int, b int) (int, int) {
return b, a
}
func main() {
first := 100
second := 200
first, second = second, first
//swap(&first, &second)
fmt.Println("first=", first)
fmt.Println("second=", second)
}