1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package main
- import (
- "crypto/rand"
- "fmt"
- "math/big"
- )
- func notmain() {
- //understanding pointers...
- var i int = 1
- var iArray [1]int
- p := &i
- iArray[0] = *p
- i = 2
- fmt.Println(iArray[0])
- fmt.Println(i)
- //understanding sclices...
- var arr [5]int
- arr[0] = 0
- arr[1] = 1
- arr[2] = 2
- arr[3] = 3
- arr[4] = 4
- fmt.Println(arr[:1])
- fmt.Println(arr[1:3]) // = [lower:upper)
- //later this will be taken from application, this is only for testing
- var topicsOfInterest []int
- var lenTopicList = 100
- //creates fake topicOfInterest if client has no interests
- //creates random length with max being len(topicList)
- if len(topicsOfInterest) == 0 {
- maxLength := lenTopicList / 2
- if maxLength == 0 {
- value, err := rand.Int(rand.Reader, big.NewInt(int64(lenTopicList+1)))
- if err != nil {
- panic(err)
- }
- maxLength = int(value.Int64())
- }
- fmt.Println("MaxLength: ", maxLength)
- lengthBig, err := rand.Int(rand.Reader, big.NewInt(int64(maxLength+1)))
- if err != nil {
- panic(err)
- }
- length := int(lengthBig.Int64())
- fmt.Println("Actual length: ", length)
- if length == 0 {
- length++
- }
- fakeTopicsOfInterest := make([]int, length)
- //fills the array with unique random ascending values in range with len(topicList)
- for index := 0; index < length; index++ {
- min := (index * (lenTopicList / length)) + 1
- max := ((index + 1) * (lenTopicList / length))
- if max == lenTopicList-1 {
- max++
- }
- bigNumber, err := rand.Int(rand.Reader, big.NewInt(int64(max-min+1)))
- if err != nil {
- panic(err)
- }
- var number int = int(bigNumber.Int64()) + min
- fakeTopicsOfInterest[index] = number
- fmt.Println("Min: ", min, " Max: ", max, " Value chosen: ", fakeTopicsOfInterest[index])
- }
- }
- }
|