29 lines
489 B
Go
29 lines
489 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
"sync"
|
|
)
|
|
|
|
func CreateSqrtMap() map[int]float64 {
|
|
numKeys := 100_000
|
|
newMap := make(map[int]float64)
|
|
|
|
for i := range numKeys {
|
|
newMap[i] = math.Sqrt(float64(i))
|
|
}
|
|
return newMap
|
|
}
|
|
|
|
var initCreateMapSqrt func() map[int]float64 = sync.OnceValue(CreateSqrtMap)
|
|
|
|
func main() {
|
|
sqrtMap := initCreateMapSqrt()
|
|
n := 100_000 / 1_000
|
|
for i := range n {
|
|
keyVal := i * 1_000
|
|
fmt.Printf("Value of map by key[%d]: %f\n", keyVal, sqrtMap[keyVal])
|
|
}
|
|
}
|