コード例 #1
0
ファイル: all.go プロジェクト: stvvan/golibs
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())
	}
}
コード例 #2
0
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]
}
コード例 #3
0
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]
}
コード例 #4
0
ファイル: ring.go プロジェクト: tjyang/golibs
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
		}
	}
}
コード例 #5
0
ファイル: example_test.go プロジェクト: stvvan/golibs
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
}
コード例 #6
0
ファイル: stack_test.go プロジェクト: tjyang/golibs
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")
	}
}
コード例 #7
0
ファイル: cache.go プロジェクト: stvvan/golibs
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()
}