go 变量作用域

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
posted @ 2025-09-17 13:50  风动随心  阅读(6)  评论(0)    收藏  举报