最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文帶你了解Go語言標(biāo)準(zhǔn)庫math和rand的常用函數(shù)

 更新時間:2022年12月18日 08:55:55   作者:陳明勇  
這篇文章主要為大家詳細(xì)介紹了Go語言標(biāo)準(zhǔn)庫math和rand中的常用函數(shù),文中的示例代碼講解詳細(xì), 對我們學(xué)習(xí)Go語言有一定的幫助,感興趣的小伙伴可以了解一下

math 標(biāo)準(zhǔn)庫

math 標(biāo)準(zhǔn)庫提供了一些 常量如 int64 類型的最大值、float64 類型的最大值等,和常用的數(shù)學(xué)計算函數(shù)。

常用函數(shù)

函數(shù)說明
Abs(x float64) float64傳入 x 參數(shù),返回 x 的絕對值
Max(x, y float64) float64傳入 x、y 參數(shù),返回 x 與 y 中的最大值
Min(x, y float64) float64傳入 x、y 參數(shù),返回 x 和 y 中的最小值
Ceil(x float64) float64傳入 x 參數(shù),返回一個大于等于 x 的最小整數(shù)值,也就是向上取整
Ceil(x float64) float64傳入 x 參數(shù),返回一個小于等于 x 的最小整數(shù)值,也就是向下取整
Trunc(x float64) float64傳入 x 參數(shù),返回浮點數(shù) x 的整數(shù)部分,使用 Floor 函數(shù)也能實現(xiàn)
Dim(x, y float64) float64傳入 x、y 參數(shù),返回 x-y 與 0 中最大的值
Mod(x, y float64) float64對 x / y 進行取余運算 x % y
Pow(x, y float64) float64計算 x 的 y 次冪
Sqrt(x float64) float64對 x 開平方
Cbrt(x float64) float64對 x 開立方
Modf(f float64) (int float64, frac float64)分別取出 f 的整數(shù)部分和小數(shù)部分

如果想了解更多函數(shù)介紹和使用,可以到 pkg.go.dev/math 進行查看。

Abs 函數(shù)

Abs(x float64) float64:返回 x 的絕對值。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Abs(-3.14)) // 3.14
}

Max 函數(shù)

Max(x, y float64) float64:返回 xy 中的最大值。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Max(1.5, 2.5)) // 2.5
}

Min 函數(shù)

Min(x, y float64) float64:返回 xy 中的最小值。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Min(1.5, 2.5)) // 1.5
}

Ceil

Ceil(x float64) float64:返回一個大于等于 x 的最小整數(shù)值,也就是向上取整。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Ceil(1.4)) // 2
    fmt.Println(math.Ceil(2))   // 2
}

Floor 函數(shù)

Ceil(x float64) float64:返回一個小于等于 x 的最小整數(shù)值,也就是向下取整。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Floor(1.4)) // 1
    fmt.Println(math.Floor(1))   // 1
}

Trunc 函數(shù)

Trunc(x float64) float64:返回浮點數(shù) x 的整數(shù)部分,使用 Floor 函數(shù)也能實現(xiàn)。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Trunc(1.4)) // 1
}

Dim 函數(shù)

Dim(x, y float64) float64:返回 x-y0 中最大的值。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Dim(2.0, 1.0)) // 1
    fmt.Println(math.Dim(1.0, 2.0)) // 0
}

Mod 函數(shù)

Mod(x, y float64) float64:對 x / y 進行取余運算 x % y。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Mod(5.0, 3.0)) // 3
    fmt.Println(math.Mod(3.0, 3.0)) // 0
}

Pow 函數(shù)

Pow(x, y float64) float64:計算 xy 次冪。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Pow(2, 1)) // 2
    fmt.Println(math.Pow(2, 5)) // 32
}

Sqrt 函數(shù)

Sqrt(x float64) float64:對 x 開平方。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Sqrt(64)) // 8
    fmt.Println(math.Sqrt(16)) // 4
}

Cbrt 函數(shù)

Cbrt(x float64) float64:對 x 開立方。 示例:

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Cbrt(64)) // 4
    fmt.Println(math.Cbrt(8))  // 2
}

Modf 函數(shù)

Modf(f float64) (int float64, frac float64):分別取出 f 的整數(shù)部分和小數(shù)部分。

  • int 參數(shù),整數(shù)部分。
  • frac 參數(shù),小數(shù)部分。 示例:
import (
    "fmt"
    "math"
)

func main() {
    integer, decimal := math.Modf(3.1415)
    fmt.Printf("整數(shù)部分:%.f 小數(shù)部分:%.4f", integer, decimal) // 整數(shù)部分:3 小數(shù)部分:0.1415
}

rand

rand 標(biāo)準(zhǔn)庫提供了多個獲取不同類型隨機數(shù)的函數(shù)。

常用函數(shù)

函數(shù)說明
Int() int返回一個 int 類型的非負(fù)的偽隨機數(shù)
Intn(n int) int返回一個 0 到 n 中(不包括 n)的 int 類型的非負(fù)偽隨機數(shù)
Int31() int32返回一個 int32 類型的非負(fù)的偽隨機數(shù)
Uint32() uint32返回一個 uint32 類型的非負(fù)的偽隨機數(shù)
Int31n(n int32) int32返回一個 0 到 n 中(不包括 n)的 int32 類型的非負(fù)偽隨機數(shù)
Int63() int64返回一個 int64 類型的非負(fù)的偽隨機數(shù)
Uint64() uint64返回一個 uint64 類型的非負(fù)的偽隨機數(shù)
Int63n(n int64) int64返回一個 0 到 n 中(不包括 n)的 int64 類型的非負(fù)偽隨機數(shù)
Float32() float32返回一個 0.0 到 1.0 中(不包括 1.0)的 float32 類型的非負(fù)偽隨機數(shù)
Float64() float64返回一個 0.0 到 1.0 中(不包括 1.0)的 float64 類型的非負(fù)偽隨機數(shù)
Seed(seed int64)設(shè)置隨機種子,使得每次獲取隨機數(shù)的值都不一樣

如果想了解更多函數(shù)介紹和使用,可以到 pkg.go.dev/math/rand 進行查看。

代碼示例

import (
    "fmt"
    "math/rand"
)

func main() {
    fmt.Println(rand.Int())      // 5577006791947779410
    fmt.Println(rand.Intn(10))   // 7
    fmt.Println(rand.Int31())    // 1427131847
    fmt.Println(rand.Uint32())   // 1879968118
    fmt.Println(rand.Int31n(10)) // 1
    fmt.Println(rand.Int63())    // 6334824724549167320
    fmt.Println(rand.Uint64())   // 9828766684487745566
    fmt.Println(rand.Int63n(10)) // 8
    fmt.Println(rand.Float32())  // 0.09696952
    fmt.Println(rand.Float64())  // 0.30091186058528707
}

多次運行上述代碼,發(fā)現(xiàn)獲取到的隨機數(shù)都是一樣的,這是因為我們沒有設(shè)置隨機種子??梢酝ㄟ^ Seed 函數(shù)進行設(shè)置:

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    rand.Seed(time.Now().Unix())
    fmt.Println(rand.Intn(10))
}

使用 Seed 函數(shù)設(shè)置隨機種子,將當(dāng)前時間的秒數(shù)作為參數(shù)。后續(xù)多次獲取隨機數(shù)的值將不會一直一樣。

小結(jié)

本文介紹了標(biāo)準(zhǔn)庫 mathrand 的常用函數(shù)的用法,并通過例子進行說明。

math 庫里雖說有最大值和最小值比較,但是形參類型必須是浮點型,如果我們想比較的是整型的最大最小值,就得自己封裝函數(shù)。

獲取隨機數(shù)時,不要忘記設(shè)置隨機種子,否則多次獲取到的隨機數(shù)將會是一樣的。

以上就是一文帶你了解Go語言標(biāo)準(zhǔn)庫math和rand的常用函數(shù)的詳細(xì)內(nèi)容,更多關(guān)于Go語言math rand的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 教你利用Golang可選參數(shù)實現(xiàn)可選模式

    教你利用Golang可選參數(shù)實現(xiàn)可選模式

    本文討論Golang函數(shù)可選參數(shù)及函數(shù)類型,以及如何利用可選函數(shù)類型實現(xiàn)可選模式。同時通過構(gòu)造函數(shù)作為示例,實現(xiàn)強大帶可選參數(shù)的構(gòu)造函數(shù),讓代碼更直觀、靈活、支持?jǐn)U展
    2023-01-01
  • Golang中閉包與常用場景詳解

    Golang中閉包與常用場景詳解

    在很多的開源項目里,經(jīng)常看到閉包的運用,這篇文章主要為大家簡要記錄一下閉包的概念和一些常用的場景,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • golang操作elasticsearch的實現(xiàn)

    golang操作elasticsearch的實現(xiàn)

    這篇文章主要介紹了golang操作elasticsearch,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • golang使用iconv報undefined:XXX的問題處理方案

    golang使用iconv報undefined:XXX的問題處理方案

    這篇文章主要介紹了golang使用iconv報undefined:XXX的問題處理方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • go語言制作一個gif動態(tài)圖

    go語言制作一個gif動態(tài)圖

    這篇文章主要介紹了go制作一個gif動態(tài)圖的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • GoLang中的sync包Once使用執(zhí)行示例

    GoLang中的sync包Once使用執(zhí)行示例

    這篇文章主要介紹了GoLang中的sync包Once使用執(zhí)行示例,沒有學(xué)習(xí)Once前,大家可能想到 聲明一個標(biāo)識,表示是否初始化過,然后初始化這個標(biāo)識加鎖,更新這個標(biāo)識,Once包主要用于在并發(fā)執(zhí)行代碼的時候,某部分代碼只會被執(zhí)行一次
    2023-03-03
  • 解決Golang中ResponseWriter的一個坑

    解決Golang中ResponseWriter的一個坑

    這篇文章主要介紹了解決Golang中ResponseWriter的一個坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Go語言的文件名、標(biāo)識符、關(guān)鍵字和包基礎(chǔ)教程

    Go語言的文件名、標(biāo)識符、關(guān)鍵字和包基礎(chǔ)教程

    Go的關(guān)鍵字不能被用作標(biāo)識符,這是一個重要的限制,以避免命名沖突和語法混淆,這篇文章主要給大家介紹了關(guān)于Go語言文件名、標(biāo)識符、關(guān)鍵字和包的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Golang中字符串(string)與字節(jié)數(shù)組([]byte)一行代碼互轉(zhuǎn)實例

    Golang中字符串(string)與字節(jié)數(shù)組([]byte)一行代碼互轉(zhuǎn)實例

    golang語言本身就是c的工具集,開發(fā)c的程序用到的大部分結(jié)構(gòu)體,內(nèi)存管理,攜程等,golang基本都有,下面這篇文章主要給大家介紹了關(guān)于Golang中字符串(string)與字節(jié)數(shù)組([]byte)一行代碼互轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 詳解MongoDB?Go?Driver如何記錄日志

    詳解MongoDB?Go?Driver如何記錄日志

    這篇文章主要為大家介紹了MongoDB?Go?Driver如何記錄日志詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論

朝阳区| 岳阳市| 万载县| 韶关市| 如皋市| 治县。| 边坝县| 平安县| 肃南| 衢州市| 东丽区| 徐水县| 德化县| 永新县| 济南市| 云安县| 闽侯县| 仲巴县| 昌吉市| 新干县| 犍为县| 清丰县| 扬州市| 星座| 清涧县| 道真| 平利县| 保定市| 双桥区| 和龙市| 麻城市| 永济市| 郁南县| 怀化市| 博客| 栾城县| 临澧县| 安仁县| 鄯善县| 乐陵市| 资中县|