package _case
import "errors"
// SumCase 值传递
func SumCase(a, b int) (sum int, err error) {
if a <= 0 && b <= 0 {
err = errors.New("两数相加不能同时小于0")
return 0, err
}
sum = a + b
return sum, nil
}
// ReferenceCase 引用传递
func ReferenceCase(a int, b *int) {
a += 1
*b += 1
}
// 全局变量
var g int
var G int
// ScopeCase 变量作用域
func ScopeCase(a, b int) {
c := 100
g = a + b + c
G = g
}
package main
import (
"fmt"
_case "study/var-func/case"
)
// 形参
// 局部变量
// 全局变量
func main() {
a := 10
b := 10
// 值拷贝.不会影响 a,b
c, err := _case.SumCase(a, b)
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(a, b)
fmt.Println(c)
// 引用传递.会改变 a,b
_case.ReferenceCase(a, &b)
fmt.Println(a, b)
fmt.Println("=====变量作用域=======")
sprintf := fmt.Sprintf("全局变量 G: %d", _case.G)
fmt.Println(sprintf)
_case.ScopeCase(a, b)
sprintf = fmt.Sprintf("全局变量 在方法里面累加 G: %d", _case.G)
fmt.Println(sprintf)
}
10 10
20
10 11
=====变量作用域=======
全局变量 G: 0
全局变量 在方法里面累加 G: 121
进程 已完成,退出代码为 0