第九单元(运算符)
<h1>一、 Go语言运算符</h1>
<h3>运算符用于在程序运行时执行数学或逻辑运算。</h3>
<p>Go 语言内置的运算符有:</p>
<ul>
<li>算术运算符</li>
<li>关系运算符</li>
<li>逻辑运算符</li>
<li>位运算符</li>
<li>赋值运算符</li>
<li>其他运算符</li>
</ul>
<h3>1.算术运算符</h3>
<table>
<thead>
<tr>
<th>运算符</th>
<th>描述</th>
<th>实例(假定 A 值为 10,B 值为 20)</th>
</tr>
</thead>
<tbody>
<tr>
<td>+</td>
<td>相加</td>
<td>A + B 输出结果 30</td>
</tr>
<tr>
<td>-</td>
<td>相减</td>
<td>A - B 输出结果 -10</td>
</tr>
<tr>
<td>*</td>
<td>相乘</td>
<td>A * B 的是200</td>
</tr>
<tr>
<td>/</td>
<td>相除</td>
<td>B / A 输出结果 2</td>
</tr>
<tr>
<td>%</td>
<td>求余</td>
<td>B % A 输出结果 0</td>
</tr>
<tr>
<td>++</td>
<td>自增</td>
<td>A++ 输出结果 11</td>
</tr>
<tr>
<td>--</td>
<td>自减</td>
<td>A-- 输出结果 9</td>
</tr>
</tbody>
</table>
<pre><code class="language-go">
package main
import "fmt"
func main(){
var a int = 10
var b int = 3
var c int
c = a + b
fmt.Printf("第一行- c的值为 %d\n",c)
c = a - b
fmt.Printf("第二行- c的值为 %d\n",c)
c = a * b
fmt.Printf("第二行- c的值为 %d\n",c)
c = a / b
fmt.Printf("第二行- c的值为 %d\n",c)
c = a % b
fmt.Printf("第二行- c的值为 %d\n",c)
}</code></pre>
<h1>2.比较运算符</h1>
<table>
<thead>
<tr>
<th>运算符</th>
<th>描述</th>
<th>实例</th>
</tr>
</thead>
<tbody>
<tr>
<td>==</td>
<td>检查两个值是否相等,如果相等返回 True 否则返回 False</td>
<td>(A == B) 为 True</td>
</tr>
<tr>
<td>!=</td>
<td>检查两个值是否不相等,如果不相等返回 True 否则返回 False</td>
<td>(A != B) 为 True</td>
</tr>
<tr>
<td>></td>
<td>检查左边值是否大于右边值,如果是返回 True 否则返回 False。</td>
<td>(A > B) 为 False</td>
</tr>
<tr>
<td><</td>
<td>检查左边值是否小于右边值,如果是返回 True 否则返回 False。</td>
<td>(A < B) 为 True</td>
</tr>
<tr>
<td>>=</td>
<td>检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。</td>
<td>(A >= B) 为 False</td>
</tr>
<tr>
<td><=</td>
<td>检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。</td>
<td>(A <= B) 为 True</td>
</tr>
</tbody>
</table>
<pre><code class="language-go">package main
import "fmt"
func main() {
var a int = 21
var b int = 10
if( a == b ) {
fmt.Printf("第一行 - a 等于 b\n" )
} else {
fmt.Printf("第一行 - a 不等于 b\n" )
}
if ( a < b ) {
fmt.Printf("第二行 - a 小于 b\n" )
} else {
fmt.Printf("第二行 - a 不小于 b\n" )
}
if ( a > b ) {
fmt.Printf("第三行 - a 大于 b\n" )
} else {
fmt.Printf("第三行 - a 不大于 b\n" )
}
/* Lets change value of a and b */
a = 5
b = 20
if ( a <= b ) {
fmt.Printf("第四行 - a 小于等于 b\n" )
}
if ( b >= a ) {
fmt.Printf("第五行 - b 大于等于 a\n" )
}
}</code></pre>
<h2>3.逻辑运算符</h2>
<table>
<thead>
<tr>
<th>运算符</th>
<th>描述</th>
<th>实例(假定 A 值为 True,B 值为 False)</th>
</tr>
</thead>
<tbody>
<tr>
<td>&&</td>
<td>逻辑 AND 运算符。 如果两边的操作数都是 True,则条件 True,否则为 False</td>
<td>(A && B) 为 False</td>
</tr>
<tr>
<td>ll</td>
<td>逻辑 OR 运算符。 如果两边的操作数有一个 True,则条件 True,否则为 False</td>
<td>(A ll B) 为 True</td>
</tr>
<tr>
<td>!</td>
<td>逻辑 NOT 运算符。 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。</td>
<td>!(A && B) 为 True</td>
</tr>
</tbody>
</table>
<h2>4.赋值运算符</h2>
<table>
<thead>
<tr>
<th>运算符</th>
<th>描述</th>
<th>实例</th>
</tr>
</thead>
<tbody>
<tr>
<td>=</td>
<td>简单的赋值运算符,将一个表达式的值赋给一个左值</td>
<td>C = A + B 将 A + B 表达式结果赋值给 C</td>
</tr>
<tr>
<td>+=</td>
<td>相加后再赋值</td>
<td>C += A 等于 C = C + A</td>
</tr>
<tr>
<td>-=</td>
<td>相减后再赋值</td>
<td>C -= A 等于 C = C - A</td>
</tr>
<tr>
<td>*=</td>
<td>相乘后再赋值</td>
<td>C *= A 等于 C = C * A</td>
</tr>
<tr>
<td>/=</td>
<td>相除后再赋值</td>
<td>C /= A 等于 C = C / A</td>
</tr>
<tr>
<td>%=</td>
<td>求余后再赋值</td>
<td>C %= A 等于 C = C % A</td>
</tr>
<tr>
<td><<=</td>
<td>左移后赋值</td>
<td>C <<= 2 等于 C = C << 2</td>
</tr>
<tr>
<td>>>=</td>
<td>右移后赋值</td>
<td>C >>= 2 等于 C = C >> 2</td>
</tr>
<tr>
<td>&=</td>
<td>按位与后赋值</td>
<td>C &= 2 等于 C = C & 2</td>
</tr>
<tr>
<td>^=</td>
<td>按位异或后赋值</td>
<td>C ^= 2 等于 C = C ^ 2</td>
</tr>
<tr>
<td>l=</td>
<td>按位或后赋值</td>
<td>C l= 2 等于 C = C</td>
<td>2</td>
</tr>
</tbody>
</table>
<h2>5.其他运算符</h2>
<p>下表列出了Go语言的其他运算符。</p>
<table>
<thead>
<tr>
<th>运算符</th>
<th>描述</th>
<th>实例</th>
</tr>
</thead>
<tbody>
<tr>
<td>&</td>
<td>返回变量存储地址</td>
<td>&a; 将给出变量的实际地址</td>
</tr>
<tr>
<td>*</td>
<td>指针变量。 *a;</td>
<td>是一个指针变量</td>
</tr>
</tbody>
</table>