2022-02-10 整数型の最大値、最小値 in Go / Goでランダム文字列
整数型の最大値、最小値 in Go
package main
import (
"fmt"
"math"
)
func main() {
fmt.Printf("int8 -> min:%d, max:%d\n", math.MinInt8, math.MaxInt8)
fmt.Printf("int16 -> min:%d, max:%d\n", math.MinInt16, math.MaxInt16)
fmt.Printf("int32 -> min:%d, max:%d\n", math.MinInt32, math.MaxInt32)
fmt.Printf("int64 -> min:%d, max:%d\n", int64(math.MinInt64), int64(math.MaxInt64))
fmt.Printf("uint8 -> min:0, max:%d\n", math.MaxUint8) // uint8の最小値は0。最小値の定数は無い
fmt.Printf("uint16 -> min:0, max:%d\n", math.MaxUint16) // uint16の最小値は0。最小値の定数は無い
fmt.Printf("uint32 -> min:0, max:%d\n", uint32(math.MaxUint32)) // uint32の最小値は0。最小値の定数は無い
fmt.Printf("uint64 -> min:0, max:%d\n", uint64(math.MaxUint64)) // uint64の最小値は0。最小値の定数は無い
}
output
int8 -> min:-128, max:127
int16 -> min:-32768, max:32767
int32 -> min:-2147483648, max:2147483647
int64 -> min:-9223372036854775808, max:9223372036854775807
uint8 -> min:0, max:255
uint16 -> min:0, max:65535
uint32 -> min:0, max:4294967295
uint64 -> min:0, max:18446744073709551615
Go言語はサイズがきっちり決まった整数型だけではなく、OSやCPUなどの実装系に依存した(実装系によってサイズが変わる)整数型も存在しています。
型 | サイズ(32bit実装) | サイズ(64bit実装) | 符号 |
---|---|---|---|
int | 32bit | 64bit | あり |
uint | 32bit | 64bit | なし |
整数リテラルを使って暗黙的に定義した変数はint型になります
func main() {
val1 := 123
fmt.Printf("val1 -> %d, type: %T\n", val1, val1)
// val1 -> 123, type: int
}
Goでランダム文字列
Go言語でランダムな文字列を生成する方法の比較 - Qiita より。
const rs2Letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
func RandString2(n int) string {
b := make([]byte, n)
for i := range b {
b[i] = rs2Letters[rand.Intn(len(rs2Letters))]
}
return string(b)
}