Files
2021-02-02 13:10:53 +03:00

60 lines
2.1 KiB
Go

// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
// For more tutorials : https://learngoprogramming.com
// In-person training : https://www.linkedin.com/in/inancgumus/
// Follow me on twitter: https://twitter.com/inancgumus
package main
import (
"fmt"
"math"
"unsafe"
)
func main() {
// you can find the limits of numerics types
// in the math package
fmt.Println("int8 :", math.MinInt8, math.MaxInt8)
fmt.Println("int16 :", math.MinInt16, math.MaxInt16)
fmt.Println("int32 :", math.MinInt32, math.MaxInt32)
fmt.Println("int64 :", math.MinInt64, math.MaxInt64)
// unsigned type can only represent positive integers
fmt.Println("uint8 :", 0, math.MaxUint8)
fmt.Println("uint16 :", 0, math.MaxUint16)
fmt.Println("uint32 :", 0, math.MaxUint32)
fmt.Println("uint64 :", 0, uint64(math.MaxUint64))
// You can't print MaxUint64 directly
// Its size is way bigger for the runtime
// It can only be used in constant expressions
// e means zeros after the number (scientific notation)
// 1e1, is 10 1e2, is 100, 12e1 is 120
fmt.Println("float32:", math.SmallestNonzeroFloat32,
math.MaxFloat32)
fmt.Println("float64:", math.SmallestNonzeroFloat64,
math.MaxFloat64)
// memory costs
fmt.Println("int :", unsafe.Sizeof(int(1)), "bytes")
fmt.Println("int8 :", unsafe.Sizeof(int8(1)), "bytes")
fmt.Println("int16 :", unsafe.Sizeof(int16(1)), "bytes")
fmt.Println("int32 :", unsafe.Sizeof(int32(1)), "bytes")
fmt.Println("int64 :", unsafe.Sizeof(int64(1)), "bytes")
fmt.Println("uint :", unsafe.Sizeof(uint(1)), "bytes")
fmt.Println("uint8 :", unsafe.Sizeof(uint8(1)), "bytes")
fmt.Println("uint16 :", unsafe.Sizeof(uint16(1)), "bytes")
fmt.Println("uint32 :", unsafe.Sizeof(uint32(1)), "bytes")
fmt.Println("uint64 :", unsafe.Sizeof(uint64(1)), "bytes")
fmt.Println("float32:", unsafe.Sizeof(float32(1)), "bytes")
fmt.Println("float64:", unsafe.Sizeof(float64(1)), "bytes")
fmt.Println("hello :", len("hello")+8, "bytes")
fmt.Println("hi :", len("hi")+8, "bytes")
}