溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Go語(yǔ)言中的運(yùn)算符

發(fā)布時(shí)間:2020-04-08 19:32:15 來(lái)源:網(wǎng)絡(luò) 閱讀:354 作者:小韓說(shuō)課 欄目:編程語(yǔ)言

1 概述

Go語(yǔ)言提供了,算術(shù),關(guān)系,邏輯,位,指針,賦值運(yùn)算符。本篇整體說(shuō)明一下。

2 算術(shù)運(yùn)算

  • + 相加
  • - 相減
  • * 相乘
  • / 相除
  • % 求余
  • ++ 自增
  • -- 自減

幾個(gè)細(xì)節(jié),需要留意一下。

  • 整數(shù)與浮點(diǎn)數(shù)進(jìn)行運(yùn)算,會(huì)將整數(shù)轉(zhuǎn)化為浮點(diǎn)數(shù),再運(yùn)算。
  • 兩個(gè)整數(shù)相除,結(jié)果是整數(shù),取整數(shù)部分。5/3 結(jié)果會(huì)是 1。
  • 求余,如果被除數(shù)或除數(shù)存在負(fù)數(shù),那么余數(shù)與被除數(shù)保持一致。此處是求余不是取模。
  • ++/--,不區(qū)分前后,只有變量后的語(yǔ)法,就是 v++。同時(shí)++/--構(gòu)成語(yǔ)句而不是表達(dá)式,意味著不能直接賦值。

3 字符串連接運(yùn)算 +

+運(yùn)算符,也可以完成字符串的連接運(yùn)算。

"Hello" + " " + "Hank!"

4 關(guān)系運(yùn)算

  • == 檢查兩個(gè)值是否相等
  • != 檢查兩個(gè)值是否不相等
  • \> 檢查左邊值是否大于右邊值
  • < 檢查左邊值是否小于右邊值
  • \>= 檢查左邊值是否大于等于右邊值
  • <= 檢查左邊值是否小于等于右邊值

關(guān)系運(yùn)算時(shí)用于判斷兩個(gè)運(yùn)算數(shù)的關(guān)系是否成立。返回布爾值。

5 邏輯運(yùn)算

  • && 邏輯與,參與運(yùn)算的兩個(gè)關(guān)系必須同時(shí)成立,結(jié)果為true,否則為false
  • || 邏輯或,參與運(yùn)算的兩個(gè)關(guān)系成立一個(gè)(或都成立)結(jié)果為true,全部關(guān)系為false,結(jié)果為false。
  • ! 邏輯非,用于取反某個(gè)關(guān)系。非真既假,非假既真。只有一個(gè)運(yùn)算數(shù)參與運(yùn)算

用來(lái)判斷多個(gè)關(guān)系是否成立。運(yùn)算結(jié)果為:
&&
true && true = true
true && false = false
false && true = false
false && false = false
||
true || true = true
true || false = true
false || true = true
false || false = false
!
!true = false
!false = true

6 指針運(yùn)算

  • & 取得變量的內(nèi)存地址。pv := &v
  • * 獲取指針地址對(duì)應(yīng)的值。*pv
    示例為:
    v:=42
    pv:=&v
    fmt.Printf("%T(%v)", pv, pv)// *int 0xc000048b68,*int就是指針類型 值為一個(gè)類似規(guī)則的地址,就是一個(gè)號(hào)碼,標(biāo)識(shí)內(nèi)存的一個(gè)空間區(qū)域
    fmt.Println(*pv)// 42,通過(guò)地址獲取對(duì)應(yīng)的變量值
    *pv ++ // 通過(guò)地址更改對(duì)應(yīng)變量
    fmt.Println(*pv, v)// 42 42變量和指針操作的同一變量(內(nèi)存地址)。

    Go語(yǔ)言的指針不可以操作。不能執(zhí)行偏移這類的操作.

理解指針的幾個(gè)概念:
變量:標(biāo)識(shí)符與值(內(nèi)存中存儲(chǔ)空間)引用。
地址:內(nèi)存中存儲(chǔ)空間的位置(門(mén)牌號(hào))
指針:一種類型,其值為某個(gè)地址。

一個(gè)數(shù)據(jù)(變量),我們可以通過(guò)變量標(biāo)識(shí)符找到他。也可以將他的地址記錄下來(lái),通過(guò)這個(gè)地址找到他。能夠記錄地址的數(shù)據(jù)類型就是指針。指針通過(guò)&運(yùn)算符來(lái)獲取變量的地址。

7 位運(yùn)算

  • & 按位與運(yùn)算
  • | 按位或運(yùn)算
  • ^ 按位異或運(yùn)算
  • << 左移運(yùn)算符,由"<<"右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。左移n位就是乘以2的n次方。
  • \>> 右移運(yùn)算符,">>"右邊的數(shù)指定移動(dòng)的位數(shù),低位舍棄,高位補(bǔ)0。右移n位就是除以2的n次方。

用于運(yùn)算構(gòu)成整數(shù)的每個(gè)二進(jìn)制位,就是位上0,1的運(yùn)算。

8 賦值運(yùn)算

  • = 簡(jiǎn)單的賦值運(yùn)算符,將一個(gè)表達(dá)式的值賦給一個(gè)左值
  • += 相加后再賦值
  • -= 相減后再賦值
  • *= 相乘后再賦值
  • /= 相除后再賦值
  • %= 求余后再賦值
  • <<= 左移后賦值
  • \>>= 右移后賦值
  • &= 按位與后賦值
  • ^= 按位異或后賦值
  • |= 按位或后賦值

變量 = 表達(dá)式
=左邊的變量,稱之為左值。通常只能是變量。
=右邊的表達(dá)式,稱之為右值。表達(dá)式是右值。

自賦值運(yùn)算,一些運(yùn)算符,可以與賦值運(yùn)算符結(jié)合,完成快捷自運(yùn)算賦值,就是上面的+=....|=,邏輯是:
v += 1 相當(dāng)于 v = v + 1
其他的邏輯相同!

9 運(yùn)算符優(yōu)先級(jí)

由高到低,列表如下:

  • ^ !
  • * / % << >> & &^
  • + - | ^
  • == != < <= >= >
  • <-
  • &&
  • ||

建議使用()小括號(hào),明確調(diào)整優(yōu)先級(jí)。

10 類型轉(zhuǎn)換

類型不同的數(shù)據(jù)不能完成運(yùn)算。如果需要,則要將類型轉(zhuǎn)換為一致的類型。
自動(dòng)轉(zhuǎn)換,有些轉(zhuǎn)換Go語(yǔ)言自動(dòng)完成,例如 5/4.0 5整型會(huì)被自動(dòng)轉(zhuǎn)換為浮點(diǎn)數(shù)。
強(qiáng)制轉(zhuǎn)換,使用語(yǔ)法 type(數(shù)據(jù)) 的形式轉(zhuǎn)換,例如:float64(5)。

Go語(yǔ)言對(duì)類型要求比較嚴(yán)格,類型可以相互轉(zhuǎn)換的場(chǎng)景不多,主要集中在數(shù)值上。就是要類型兼容,才可以轉(zhuǎn)換。

完!
原文出自:小韓說(shuō)課
微信關(guān)注:小韓說(shuō)課
Go語(yǔ)言中的運(yùn)算符

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI