欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go中使用操作符進行數(shù)學運算的示例代碼

 更新時間:2023年10月08日 14:39:25   作者:CHQIUU  
在編程中有效地執(zhí)行數(shù)學運算是一項需要開發(fā)的重要技能,本文主要介紹了Go中使用操作符進行數(shù)學運算的示例代碼,具有一定的參考價值,感興趣的可以了解一下

引言

數(shù)字在編程中很常見。它們用于表示諸如:屏幕尺寸、地理位置、金錢和點數(shù)、視頻中經(jīng)過的時間、游戲角色的位置、分配數(shù)字代碼的顏色等等。

在編程中有效地執(zhí)行數(shù)學運算是一項需要開發(fā)的重要技能,因為你經(jīng)常會用到數(shù)字。雖然對數(shù)學的深入理解肯定可以幫助你成為更好的程序員,但這不是先決條件。如果你沒有數(shù)學背景,試著把數(shù)學看作是一種工具來完成你想要達到的目標,是一種提高你邏輯思維的方法。

我們將使用Go中最常用的兩種數(shù)字[數(shù)據(jù)類型]整數(shù)浮點數(shù):

  • [Integers]是整數(shù),可以是積極的,消極的,或0(…,-101,…)。
  • [Floats]是包含小數(shù)點的實數(shù),例如9.0-2.25

本教程將回顧Go中可用于數(shù)字數(shù)據(jù)類型的運算符。

運算符

運算符是一個表示操作的符號或函數(shù)。例如,在數(shù)學中,加號或’ + '是表示加法的運算符。

在Go中,我們將看到一些從數(shù)學中引入的熟悉的操作符。不過,我們將使用的其他操作符是計算機編程特有的。

下面是Go中數(shù)學相關運算符的快速參考表。我們將在本教程中介紹以下所有操作。

運算符返回什么
x + yx與y的和
x - yx和y的差值
-x改變x的符號
+xx的恒等式
x * yx和y的乘積
x / yx和y的商
x % yx / y的余數(shù)

我們還將介紹復合賦值運算符,包括+=*=,它們將算術運算符與=運算符結合在一起。

加法和減法

在Go中,加法和減法運算符的表現(xiàn)與數(shù)學中的一樣。事實上,您可以將Go編程語言用作計算器。

讓我們看一些例子,從整數(shù)開始:

fmt.Println(1 + 5)

Output6

除了直接將整數(shù)傳遞給fmt.Println語句之外,我們可以使用如下語法初始化變量以表示整數(shù)值:

a := 88
b := 103
fmt.Println(a + b)

Output191

因為整數(shù)既可以是正數(shù),也可以是負數(shù)(0也是),所以可以將負數(shù)和正數(shù)相加:

c := -36
d := 25
fmt.Println(c + d)

Output-11

浮點數(shù)的加法操作類似:

e := 5.5
f := 2.5
fmt.Println(e + f)

Output8

因為我們將兩個浮點數(shù)相加,所以Go返回了一個帶小數(shù)點的浮點值。然而,由于在本例中小數(shù)點是零,fmt.Println刪除了小數(shù)格式。為了正確格式化輸出,我們可以使用fmt.Printf和動詞%.2f,它將格式化為兩位小數(shù),如下例所示:

fmt.Printf("%.2f", e + f)

Output8.00

減法的語法與加法相同,只是要把運算符從加號(+)改為減號(-):

g := 75.67
h := 32.0
fmt.Println(g - h)

Output43.67

在Go中,我們只能在相同的數(shù)據(jù)類型上使用操作符。我們不能將intfloat64相加

i := 7
j := 7.0
fmt.Println(i + j)
Outputi + j (mismatched types int and float64)

試圖在不相同的數(shù)據(jù)類型上使用運算符將導致編譯器錯誤。

一元數(shù)學表達式

一元數(shù)學表達式只包含一個成分或元素。在Go中,我們可以使用加號和減號作為單個元素與值配對:返回值的單位符號(+),或更改值的符號(-)。

雖然加號不常用,但它表示值的身份。我們可以使用加號來表示正數(shù):

i := 3.3
fmt.Println(+i)

Output3.3

當我們用加號表示一個負數(shù)時,它也會返回該值的標識符,在這個例子中,它會返回一個負數(shù):

j := -19
fmt.Println(+j)

Output-19

對于負數(shù),加號返回相同的負數(shù)。

然而,減號會改變值的正負號。因此,當我們傳入一個正值時,我們會發(fā)現(xiàn)值之前的減號將返回負值:

k := 3.3
fmt.Println(-k)

Output-3.3

或者,當使用減號操作符處理負數(shù)時,將返回一個正數(shù):

j := -19
fmt.Println(-j)

Output19

由加號和減號表示的一元算術運算將返回值的恒等符號(如+i),或相反的符號(如-i)。

乘法和除法

就像加法和減法一樣,乘法和除法看起來很像數(shù)學中的運算。我們將在Go中用于乘法的符號是*,用于除法的符號是/。

下面是用兩個浮點數(shù)在Go中做乘法的例子:

k := 100.2
l := 10.2
fmt.Println(k * l)

Output1022.04

在Go中,根據(jù)我們除法的數(shù)值類型,除法具有不同的特征。

如果我們要除以整數(shù),Go的/運算符會執(zhí)行整除操作,對于商x,返回的是小于或等于x的最大整數(shù)。

如果你運行以下除以80 / 6的例子,你將得到13作為輸出,數(shù)據(jù)類型將是int:

package main
import (
	"fmt"
)
func main() {
	m := 80
	n := 6
	fmt.Println(m / n)
}

Output13

如果期望的輸出是浮點數(shù),則必須在除法之前顯式轉換值。

你可以通過在你的值周圍包裝你想要的浮點類型float32()float64()來實現(xiàn):

package main
import (
	"fmt"
)
func main() {
	s := 80
	t := 6
	r := float64(s) / float64(t)
	fmt.Println(r)
}

Output13.333333333333334

%操作符是,它返回除法后的余數(shù)而不是商。這對于查找是同一個數(shù)的倍數(shù)的數(shù)很有用。

來看一個求模的例子:

o := 85
p := 15
fmt.Println(o % p)

Output10

具體來說,85除以15返回的是5的商余數(shù)10。我們的程序在這里返回值10,因為求模運算符返回除法表達式的余數(shù)。

要對float64數(shù)據(jù)類型進行模運算,你將使用math包中的Mod函數(shù):

package main
import (
	"fmt"
	"math"
)
func main() {
	q := 36.0
	r := 8.0
	s := math.Mod(q, r)
	fmt.Println(s)
}

Output4

運算符優(yōu)先級

在Go中,就像在數(shù)學中一樣,我們需要記住,運算符將按優(yōu)先級順序進行計算,而不是從左到右或從右到左。

看看下面的數(shù)學表達式:

u = 10 + 10 * 5

我們可以從左到右讀取它,但乘法將首先執(zhí)行,因此如果我們打印u,我們將收到以下值:

Output60

這是因為10 * 5的計算結果是50,然后我們加上10來返回60作為最終結果。

如果我們想將值10加到10,然后乘以5,我們在Go中使用括號,就像我們在數(shù)學中使用的那樣:

u := (10 + 10) * 5
fmt.Println(u)

Output100

記住運算順序的一種方法是使用縮寫PEMDAS:

優(yōu)先級標志代表
1P括號
2E指數(shù)
3M乘法
4D除法
5A加法
6S減法

你可能熟悉另一個表示操作順序的縮寫,例如BEDMASBODMAS。無論哪種首字母縮寫最適合您,在Go中執(zhí)行數(shù)學操作時請盡量記住它,以便返回您期望的結果。

賦值操作符

最常見的賦值運算符已經(jīng)用過:等號=。賦值運算符=將右邊的值賦給左邊的變量。例如,v = 23將整數(shù)23的值賦給變量v

編程時,通常使用復合賦值操作符,對變量的值進行操作,然后將得到的新值賦給該變量。這些復合操作符結合了算術操作符和=操作符。因此,對于加法運算,我們將+=結合起來得到復合運算符+=。讓我們看看它是什么樣子:

w := 5
w += 1
fmt.Println(w)

Output6

首先,我們將變量w的值設置為5,然后使用+=復合賦值操作符將右值與左值相加,然后將結果賦值給w

復合賦值運算符經(jīng)常用于for循環(huán)的情況,當你想多次重復一個過程時,你會使用它:

package main
import "fmt"
func main() {
	values := []int{0, 1, 2, 3, 4, 5, 6}
	for _, x := range values {
		w := x
		w *= 2
		fmt.Println(w)
	}
}

Output0
2
4
6
8
10
12

通過使用for循環(huán)來迭代名為values的切片,你能夠自動化*=操作符的處理,該操作符將變量w乘以數(shù)字2,然后將結果賦值給變量w

對于本教程中討論的每個算術運算符,Go都有一個復合賦值運算符。

添加后再賦值:

y += 1

減去后再賦值:

y -= 1

相乘再賦值:

y *= 2

相除再賦值:

y /= 3

要返回余數(shù),然后再賦值:

y %= 3

當需要遞增或遞減操作時,或者需要自動化程序中的某些過程時,復合賦值操作符可能很有用。

總結

到此這篇關于Go中使用操作符進行數(shù)學運算的示例代碼的文章就介紹到這了,更多相關Go 操作符數(shù)學運算內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • golang 如何獲取文件夾下面的文件列表

    golang 如何獲取文件夾下面的文件列表

    這篇文章主要介紹了golang 獲取文件夾下面的文件列表方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • GO語言類型轉換和類型斷言實例分析

    GO語言類型轉換和類型斷言實例分析

    這篇文章主要介紹了GO語言類型轉換和類型斷言,以實例形式詳細分析了類型轉換和類型斷言的概念與使用技巧,需要的朋友可以參考下
    2015-01-01
  • 詳解如何修改Go結構體的私有字段

    詳解如何修改Go結構體的私有字段

    在 Go 語言中,結構體字段的訪問權限是由字段名的首字母決定的:首字母大寫表示公共字段(public),首字母小寫表示私有字段(private),本文給大家介紹了如何修改Go結構體的私有字段,需要的朋友可以參考下
    2025-01-01
  • Go 值傳遞與引用傳遞的方法

    Go 值傳遞與引用傳遞的方法

    這篇文章主要介紹了Go 值傳遞與引用傳遞的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 關于Go 空結構體的 3 種使用場景

    關于Go 空結構體的 3 種使用場景

    在今天這篇文章要給大家介紹得是Go 語言中幾種常見類型的寬度,并且基于開頭的問題 ”空結構體“ 進行了剖析,需要的朋友可以參考一下,希望對你有所幫助
    2021-10-10
  • 使用go在mangodb中進行CRUD操作

    使用go在mangodb中進行CRUD操作

    這篇文章主要介紹了使用go在mangodb中進行CRUD操作,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 基于Golang實現(xiàn)YOLO目標檢測算法

    基于Golang實現(xiàn)YOLO目標檢測算法

    目標檢測是計算機視覺領域的重要任務,它不僅可以識別圖像中的物體,還可以標記出物體的位置和邊界框,YOLO是一種先進的目標檢測算法,以其高精度和實時性而聞名,本文將介紹如何使用Golang實現(xiàn)YOLO目標檢測算法,文中有相關的代碼示例供大家參考,需要的朋友可以參考下
    2023-11-11
  • Golang channel死鎖的幾種情況小結

    Golang channel死鎖的幾種情況小結

    本文主要介紹了Golang channel死鎖的幾種情況小結,詳細的介紹了六種情況,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • GO語言中Chan實現(xiàn)原理的示例詳解

    GO語言中Chan實現(xiàn)原理的示例詳解

    這篇文章主要為大家詳細介紹了Go語言中Chan實現(xiàn)原理的相關資料,文中的示例代碼講解詳細,對我們學習Go語言有一定的幫助,需要的可以參考一下
    2023-02-02
  • 解決goland 導入項目后import里的包報紅問題

    解決goland 導入項目后import里的包報紅問題

    這篇文章主要介紹了解決goland 導入項目后import里的包報紅問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05

最新評論