Go语言学习笔记(3)

运算符

算数运算符

运算符描述
+相加
相减
*相乘
/相除
%求余
在Go语言中, 自增 ( ++ ) 和 自减 ( -- ) 算单独的语句,不属于运算符。
package main

import "fmt"

func main() {

	var A = 100
	var B = 10

	fmt.Println("A+B : " ,A + B)
	fmt.Println("A-B : " ,A - B)
	fmt.Println("A*B : " ,A * B)
	fmt.Println("A/B : " ,A / B)
	fmt.Println("A%B : " ,A % B)

}

输出结果:

关系运算符

运算符描述
==检查两个值是否相等,如果相等返回 True, 否则返回 False。
!=检查两个值是否不相等,如果不相等返回 True, 否则返回 False。
>检查左边值是否大于右边值,如果是返回 True, 否则返回 False。
>=检查左边值是否大于等于右边值,如果是返回 True ,否则返回 False。
<检查左边值是否小于右边值,如果是返回 True ,否则返回 False。
<=检查左边值是否小于等于右边值,如果是返回 True, 否则返回 False。
package main

import "fmt"

func main() {
	var Bool bool  //定义布尔值 Bool
	var A = 10
	var B = 100
	var C = 10

	Bool = A==B
	fmt.Println("A == B: " , Bool)  // false
	Bool = A!=B
	fmt.Println("A != B: " , Bool)  //true

	Bool = A > C
	fmt.Println("A > C: " , Bool)  //false
	Bool = A < B
	fmt.Println("A < B: " , Bool) //true

	Bool = A <= B
	fmt.Println("A <= B: " , Bool) //true
	Bool = A >= C
	fmt.Println("A >= C: " , Bool) //true
}

输出结果:

逻辑运算符

运算符描述
&&逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。
ll逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。
!逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True
package main

import "fmt"

func main() {
	var S bool

	var A = true
	var B = false

	S = A && B
	fmt.Println("A && B: " , S)
	S = A || B
	fmt.Println("A || B: " , S)
	S = !A
	fmt.Println("!A: " , S)

}

输出结果:

位运算符

运算符描述
&参与运算的两数各对应的二进位相与。(两位均为1才为1)
l参与运算的两数各对应的二进位相或。(两位有一个为1就为1)
^参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
(两位不一样则为1)
<<左移n位就是乘以2的n次方。“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
>>右移n位就是除以2的n次方。“a>>b”是把a的各二进位全部右移b位。

位运算符的概念可以参考这篇教程来更好的理解: C 运算符

package main

import "fmt"

func main() {

	var A  = 15 //1111
	var B = 10 // 1010
	var C uint = 1 //1

	Y := A & B
	fmt.Println("A & B: " , Y)  //1010 = 10
	Y = A | B
	fmt.Println("A | B: " , Y) //1111 = 5
	Y = A ^ B
	fmt.Println("A ^ B: " , Y) //0101 = 5
	Y = A << C
	fmt.Println("A << C: " , Y)//11110 = 30
	Y = A >> C
	fmt.Println("A >> C: " , Y)//0111 = 7

}

输出结果:

赋值运算符

运算符描述
=简单的赋值运算符,将一个表达式的值赋给一个左值
+=相加后再赋值
-=相减后再赋值
*=相乘后再赋值
/=相除后再赋值
%=求余后再赋值
<<=左移后赋值
>>=右移后赋值
&=按位与后赋值
l=按位或后赋值
^=按位异或后赋值
package main

import "fmt"

func main() {

	var R = 20
	fmt.Println("var R = 20")
	R += 1
	fmt.Println("R += 1: ",R)  // R = R + 1
	R -= 1
	fmt.Println("R -= 1: ",R)  // R = R - 1
	fmt.Println("++++++++++++++++")

	var A = 10
	fmt.Println("var A = 10")
	A *= 2
	fmt.Println("A *= 2: ",A) // A = A * 2
	A /= 4  //a = 20/4
	fmt.Println("A /= 4: ",A)  // A = A / 4
	A %= 10  //5%10
	fmt.Println("A %= 10: ",A)// A = A % 10
	fmt.Println("++++++++++++++++")

	var G = 15  //1111
	fmt.Println("var G = 15")
	G <<= 1
	fmt.Println("G <<= 1: ",G)  // 1111 ---> 11110 , 11110 = 30
	G >>= 1
	fmt.Println("G >>= 1: ",G) // 1111  ---> 01111 , 01111 = 15
	fmt.Println("++++++++++++++++")

	var E = 10  // 1010
	E &= 10
	fmt.Println("E &= 10: ",E)  //1010 & 1010 ---> 1010 , 1010 = 10
	E |= 15
	fmt.Println("E |= 10: ",E)  //1010 % 1111 ---> 1111 , 1111 = 15
	E ^= 10
	fmt.Println("E ^= 10: ",E)  //1010 ^ 1010 ---> 0101 , 0101 = 5

}

输出结果:

作者: Xenolies
文章标题 :Go语言学习笔记(3)
文章链接 : https://xenolies.xyz/2022/05/29/2275/
文章URL : https://xenolies.xyz/2022/05/29/2275/
本文采用 CC BY-NC-SA 4.0 协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇