在 Go lambda 函數中產生隨機數,需要使用 math/rand 庫:導入庫並設定種子以確保不同輸出。使用 rand.Intn(max) 產生隨機整數 (範圍[0,max))。使用 rand.Float64() 產生隨機小數 (範圍[0.0,1.0))。使用 rand.ReadStringN(n) 產生隨機字串 (長度為 n)。
如何在 Golang lambda 函數中產生隨機數字?
Golang 語言內建了強大的隨機數產生函式庫 math/rand
。利用這個函式庫,我們可以輕鬆地在 lambda 函數中產生隨機數。
安裝並設定
首先,導入math/rand
函式庫:
import ( "math/rand" "time" )
time.Now() .UnixNano()
部分用於產生種子,確保每次產生隨機數時都有不同的輸出。
產生隨機整數
可以使用rand.Intn(max)
函數產生一個介於[0, max)
範圍內的隨機整數,其中max
指定了上限。
max := 10 num := rand.Intn(max) fmt.Println(num) // 输出一个介于 [0, 10) 范围内的随机整数
產生隨機小數
可以使用rand.Float64()
函數產生一個介於[0.0, 1.0)
範圍內的隨機小數。
num := rand.Float64() fmt.Println(num) // 输出一个介于 [0.0, 1.0) 范围内的随机小数
產生隨機字串
可以使用rand.ReadStringN(n)
函數產生一個長度為n
的隨機字串。
length := 10 str := make([]byte, length) rand.ReadStringN(len(str), str) fmt.Println(string(str)) // 输出一个 10 个字符长的随机字符串
實戰案例
以下是一個使用math/rand
函式庫在Golang lambda 函數中產生隨機數的簡單範例:
package main import ( "context" "encoding/json" "fmt" "log" "math/rand" "time" "github.com/aws/aws-lambda-go/lambda" ) func handler(ctx context.Context, req []byte) (int, error) { rand.Seed(time.Now().UnixNano()) return rand.Intn(10), nil } func main() { lambda.Start(handler) }
這個lambda 函數會產生一個介於[0, 10)
範圍內的隨機整數並輸出到函數日誌中。
以上是如何在 Golang lambda 函數中產生隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!