func main() { floats := []float64{1.4, 3.14, 9.81, 13.2, 23.42, 33.7, 44.11, 51} array := stack.Lifo() array.Push(fmt.Sprintf("Lorem %v", ansi.Color("Ipsum", ansi.Blue))) array.Push(fmt.Sprintf("Dolor %v", ansi.Bold("sit Amet"))) array.Push(fmt.Sprintf("5th Prime: %v", xmath.Prime(5))) array.Push(fmt.Sprintf("\n\tMin: %v\n\tMax: %v\n\tMedian: %v\n\tArithmetic: %v\n\tHarmonic: %v\n\tGeometric: %v", xmath.Min(floats), xmath.Max(floats), xmath.Median(floats), xmath.Arithmetic(floats), xmath.Harmonic(floats), xmath.Geometric(floats))) array.Push(fmt.Sprintf("Date: %v", as.Time("11.01.2015"))) for array.Len() > 0 { log.Println(array.Pop()) } array.Push(string(as.Bytes(regex.ReplaceAllString("foobar", "o+", "u")))) array.Push(as.Int(23.0000)) array.Push(as.Float(13.37)) array.Push(as.String(23.0)) array.Push(as.Bool(111111)) array.Push(as.Bytes(12.34)) array.Push(as.String(strconv.ParseInt("42", 10, 0))) array.Push(as.FloatFromXString("2,3")) array.Push(as.FloatFromXString(".23")) array.Push(as.String("\r\n\t\n")) for array.Len() > 0 { log.Println(array.Pop()) } }
func askOnRuntime(va ...interface{}) (int64, int64, int64, int64) { var v [4]int64 var typeof = "" for i := 0; i < 4; i++ { if i < len(va) { typeof = as.String(reflect.TypeOf(va[i])) } else { typeof = "nil" } if typeof == "int" || typeof == "int8" || typeof == "int16" || typeof == "int32" || typeof == "int64" { v[i] = as.Int(va[i]) } else { switch i { case 0: v[i] = as.Int(askFor("first value")) case 1: v[i] = as.Int(askFor("second value")) case 2: v[i] = as.Int(askFor("third value")) case 3: v[i] = as.Int(askFor("fourth value")) } } } return v[0], v[1], v[2], v[3] }
func defaultValue(va ...interface{}) (int64, int64, int64, int64) { var v [4]int64 var typeof = "" for i := 0; i < 4; i++ { if i < len(va) { typeof = as.String(reflect.TypeOf(va[i])) } else { typeof = "nil" } if typeof == "int" || typeof == "int8" || typeof == "int16" || typeof == "int32" || typeof == "int64" { v[i] = as.Int(va[i]) } else { switch i { case 0: v[i] = 2 case 1: v[i] = 4 case 2: v[i] = 8 case 3: v[i] = 16 } } } return v[0], v[1], v[2], v[3] }
func main() { r := stack.Ring() r.Init(10) r.SetSize(15) go func() { for { rand.Seed(time.Now().UnixNano()) time.Sleep(time.Duration(rand.Intn(4)) * time.Second) rand.Seed(time.Now().UnixNano()) ran := as.String(rand.Intn(127)) pos := r.Push(ran) log.Printf("Value %v added at %v\n", ansi.Bold(ansi.Color(ran, ansi.Red)), ansi.Bold(ansi.Color(as.String(pos), ansi.Blue))) } }() var last int = 0 var nlast int = 0 var vals []string var i int for { _, err := fmt.Scanf("%d", &i) if err != nil { fmt.Println("only numbers") } else { ix := as.String(i) nlast = r.Push(ix) log.Printf("Value %v added at %v\n", ansi.Bold(ansi.Color(ix, ansi.Green)), ansi.Bold(ansi.Color(as.String(nlast), ansi.Blue))) log.Printf("Get from %v\n", last) vals = r.Get(last) for _, v := range vals { if v != "" { log.Printf("\t%v\n", ansi.Color(as.String(v), ansi.Yellow)) } } last = nlast } } }
func ExampleString() { values := []interface{}{[]byte("foobar"), 1, true, 5 * time.Second, 0xfefe} fmt.Println("as.String()") for _, v := range values { fmt.Printf("%v => %v\n", v, as.String(v)) } // Output: // as.String() // [102 111 111 98 97 114] => foobar // 1 => 1 // true => true // 5s => 5s // 65278 => 65278 }
func Test_Stack(t *testing.T) { array := Lifo() array.Push("1") array.Push(float64(13.37)) array.Push(false) array.Push("Lorem Ipsum Dolor sit Amet") var str string for array.Len() > 0 { str += as.String(array.Pop()) + " " } str = strings.Trim(str, "\t\r\n ") if str != "Lorem Ipsum Dolor sit Amet false 13.37 1" { t.Fatalf("Stack Test failed") } if array.Pop() != "" { t.Fatalf("Stack Test failed") } }
func main() { c := cache.New(10*time.Second, 1000*time.Millisecond) size(c) log.Println("writing first 500 values") for i := 0; i < 500; i++ { rand.Seed(time.Now().UnixNano()) time.Sleep(time.Duration(rand.Intn(10)) * time.Millisecond) rand.Seed(time.Now().UnixNano()) ran := as.String(rand.Intn(999)) c.Add(fmt.Sprintf("Value %v", i), ran) } size(c) log.Println("delete random values") for i := 0; i < 100; i++ { c.Delete(fmt.Sprintf("Value %v", c.Get(fmt.Sprintf("Value %v", i)))) } size(c) log.Println("writing next 500 values") for i := 500; i < 1000; i++ { rand.Seed(time.Now().UnixNano()) time.Sleep(time.Duration(rand.Intn(10)) * time.Millisecond) rand.Seed(time.Now().UnixNano()) ran := as.String(rand.Intn(999)) c.Add(fmt.Sprintf("Value %v", i), ran) } size(c) log.Println("delete random values") for i := 200; i < 300; i++ { c.Delete(fmt.Sprintf("Value %v", c.Get(fmt.Sprintf("Value %v", i)))) } size(c) log.Println("output all values") for i := 0; i < 1000; i++ { v := c.Get(fmt.Sprintf("Value %v", i)) if v == nil { fmt.Printf("%v: \t%v\t", i, v) } else { fmt.Printf("%v: \t%v\t", i, ansi.Color(fmt.Sprintf("%v", v), ansi.Green)) } if i%5 == 0 { fmt.Println() } } fmt.Println() size(c) log.Println("wait 11 seconds") time.Sleep(time.Duration(11) * time.Second) size(c) log.Println("run gc") runtime.GC() size(c) log.Println("wait 11 seconds") time.Sleep(time.Duration(11) * time.Second) size(c) runt() }