目录
2.go语言的指针,指针不能运算,go语言参数传递只有值传递,通过指针实现地址传递
1.go语言的函数
1.1定义一个函数返回一个值
代码部分:
func eval(a, b int, op string) int { //定义函数eval,a,b是整形参数,op是字符串型参数,int是函数返回值
switch op {
case "+":
return a + b
case "-":
return a - b
case "*":
return a * b
case "/":
return a / b
default:
panic("unsupported op:" + op) //用于报错
}
}
运行截图:![](https://i-blog.csdnimg.cn/blog_migrate/b3b04df4d0fb9c883a9ac09c82d1f1d0.png)
1.2 定义一个函数返回多个值
代码部分:
func div(a, b int) (q, r int) {
return a / b, a % b
}
函数返回2个值,如何只接受一个值?
func main() {
fmt.Println(eval(1, 2, "+"))
q, r := div(13, 3)
fmt.Println(q, r)
//函数返回2个值,如何只接受一个值?
a, _ := div(13, 3) //答:用下划线代替另一个值
fmt.Println(a)
}
运行截图:![](https://i-blog.csdnimg.cn/blog_migrate/c105022353f889bc99abe84c273a3d4f.png)
函数代码汇总:
package main
import "fmt"
//定义函数返回一个值
func eval(a, b int, op string) int { //定义函数eval,a,b是整形参数,op是字符串型参数,int是函数返回值
switch op {
case "+":
return a + b
case "-":
return a - b
case "*":
return a * b
case "/":
return a / b
default:
panic("unsupported op:" + op) //用于报错
}
}
//定义一个函数返回多个值
func div(a, b int) (q, r int) {
return a / b, a % b
}
func main() {
fmt.Println(eval(1, 2, "+"))
q, r := div(13, 3)
fmt.Println(q, r)
//函数返回2个值,如何只接受一个值?
a, _ := div(13, 3) //答:用下划线代替另一个值
fmt.Println(a)
}
2.go语言的指针,指针不能运算,go语言参数传递只有值传递,通过指针实现地址传递
代码部分:
package main
import "fmt"
//go语言指针,指针不能运算
//go语言的参数传递只有值传递,通过指针实现地址传递
func swap(a, b *int) {
*b, *a = *a, *b
//或者直接不用指针写为return b,a
}
func main() {
var a int = 2
var pa *int = &a
*pa = 3
fmt.Println(a)
aa, bb := 1, 2
swap(&aa, &bb)
fmt.Println(aa, bb)
}
运行截图:![](https://i-blog.csdnimg.cn/blog_migrate/50b2ba3914db9a07105c9e21b3f8d07d.png)
本章完结