package main
import (
"fmt"
)
func main() {
//赋值运算符的使用
//1.简单赋值 = , c=a+b 运算顺序从右往左
var(a,b int = 1,2)
var c int
c=a+b
fmt.Println("简单赋值的结果是:",c)
fmt.Println("-----------------")
//赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值
//任何有值都可以看作表达式
//var i int
//i = l
//i = + 9 * 8
//i = test() + 90
//i = 890
//fmt.Println(i)
//2.相加赋值 += ,b1=b1+a1
var (a1,b1 int = 2,2)
b1 += a1
fmt.Println("相加赋值的结果是:",b1)
fmt.Println("-----------------")
//3.相减赋值 -= , b2=b2+a2
var (a2,b2 int = 2,3)
b2 -= a2
fmt.Println("相减赋值的结果是:",b2)
fmt.Println("-----------------")
//4.相乘赋值*= , b3=b3*a3
var(a3,b3 int = 3,3)
b3 *= a3
fmt.Println("相乘赋值的结果是:",b3)
fmt.Println("-----------------")
//5.相除赋值 /= ,b4=b4/a4 分整除和小数保留的情况需要用不同的类型
var (a4,b4 int = 3,9) //整除部分情况
var (a5,b5 float64 = 4.0,9) //小数部分情况
b4 /= a4
b5 /= a5
fmt.Println("相除赋值的结果是:",b4)
fmt.Println("相除赋值的结果是:",b5)
fmt.Println("-----------------")
//6.取余赋值 %= , b6=b6%a6
var (a6,b6 int = 4,9)
b6 %= a6
fmt.Println("取余赋值的结果是:",b6)
fmt.Println("-----------------")
//案例: 有两个变量,a 和 b,要求将其进行交换,最终打印结果
//1.传统方法:借用临时变量;
var(an,bn int = 32,36)
fmt.Printf("替换前的a=%v , b=%v\n",an,bn)
tn:=an
an = bn
bn = tn
fmt.Printf("替换后的a=%v , b=%v\n",an,bn)
fmt.Println("-----------------")
//2.不借助额外空间的方式;
var (am,bm = 32,36)
fmt.Printf("替换前的am=%v , bm=%v\n",am,bm)
bm = bm + am //32+36=68
am = bm - am //68-32(am)=36(bm)
bm = bm - am //68-36(bm)=36(am)
fmt.Printf("替换后的am=%v , bm=%v\n",am,bm)
fmt.Println("-----------------")
//3.变量直接交换位置赋值。
var (
e,f = 10,20
)
fmt.Printf("替换前的e=%v , f=%v\n",e,f)
e,f = f,e
fmt.Printf("替换后的e=%v , f=%v\n",e,f)
}
运行结果
简单赋值的结果是: 3
-----------------
相加赋值的结果是: 4
-----------------
相减赋值的结果是: 1
-----------------
相乘赋值的结果是: 9
-----------------
相除赋值的结果是: 3
相除赋值的结果是: 2.25
-----------------
取余赋值的结果是: 1
-----------------
替换前的a=32 , b=36
替换后的a=36 , b=32
-----------------
替换前的am=32 , bm=36
替换后的am=36 , bm=32
-----------------
替换前的e=10 , f=20
替换后的e=20 , f=10
进程 已完成,退出代码为 0