github.com/enetx/g@v1.0.80/examples/main.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/enetx/g"
     7  	"github.com/enetx/g/cmp"
     8  )
     9  
    10  func main() {
    11  	// strings
    12  	str := g.NewString("") // declaration and assignation
    13  
    14  	str.Random(9).Print()
    15  	str.Hash().MD5().Print()
    16  
    17  	str = "test"
    18  	str.Comp().Flate().Decomp().Flate().Unwrap().Print()
    19  
    20  	g.NewString("12").ToInt().Ok().Print()
    21  
    22  	var jsonSet g.Set[int]
    23  
    24  	str.Enc().JSON(g.SetOf(1, 2, 3, 4)).Unwrap().Dec().JSON(&jsonSet).Unwrap()
    25  
    26  	fmt.Println(str.Decomp().Flate().Err())
    27  	fmt.Println(str.Decomp().Flate().UnwrapOr("some value"))
    28  	// fmt.Println(str.Dec().Flate().Expect("some custom message on error"))
    29  	// fmt.Println(str.Dec().Flate().Unwrap())
    30  
    31  	str = "*(&()&)(*&(*))"
    32  	fmt.Println(str.Dec().Base64().Err())
    33  	fmt.Println(str.Dec().Base64().UnwrapOr("some value"))
    34  	// fmt.Println(str.Dec().Base64().Expect("some custom message on error"))
    35  	// fmt.Println(str.Dec().Base64().Unwrap())
    36  
    37  	var str2 g.String = "rest" // declaration and assignation
    38  
    39  	fmt.Println(str2)
    40  
    41  	a := g.NewString("abc")
    42  	b := g.NewString("bbb")
    43  	c := g.NewString("ccc")
    44  	d := g.NewString("ddd")
    45  	e := g.NewString("eee")
    46  
    47  	str3 := a.ReplaceAll("a", "zzz").Upper().Fields().Collect().Random().Split("").Collect()[0].Lower().Std()
    48  
    49  	fmt.Println(str3)
    50  
    51  	// ints
    52  	n := g.NewInt(52452356235) // declaration and assignation
    53  
    54  	fmt.Printf("%v\n", n.Bytes())
    55  
    56  	n.Hash().MD5().Print()
    57  	n.Hash().SHA1().Print()
    58  	n.Hash().SHA256().Print()
    59  
    60  	n.ToBinary().Print()
    61  	n.ToString().Print()
    62  
    63  	rn := g.NewInt(10).Random()
    64  	fmt.Println("random number: ", rn)
    65  
    66  	rrn := g.NewInt(10).RandomRange(100)
    67  	fmt.Println("random range number: ", rrn)
    68  
    69  	var n2 g.Int = 321
    70  
    71  	fmt.Println(n2) // declaration and assignation
    72  
    73  	n.Add(n2).Mul(3).Print()
    74  
    75  	// floats
    76  
    77  	fl := g.NewFloat(12.5456)
    78  	fl.Round().Print() // 13
    79  
    80  	// slices
    81  	sl := g.NewSlice[g.String]().Append(a, b, c, d, e) // declaration and assignation
    82  
    83  	sl.Shuffle()
    84  
    85  	fmt.Println(sl.Get(-1) == "eee")
    86  	fmt.Println(sl.Get(1) == "bbb")
    87  	fmt.Println(sl.Get(-2) == "ddd")
    88  
    89  	sl.Iter().Map(g.String.Upper).Collect().Print()
    90  
    91  	counter := sl.Append(sl...).Append("ddd").Iter().Counter().Collect()
    92  
    93  	counter.SortBy(func(a, b g.Pair[g.String, g.Int]) cmp.Ordering {
    94  		return b.Value.Cmp(a.Value).Then(a.Key.Cmp(b.Key))
    95  	})
    96  
    97  	counter.Print() // Output: MapOrd{ddd:3, abc:2, bbb:2, ccc:2, eee:2}
    98  
    99  	counter.Iter().ForEach(func(k g.String, v g.Int) { fmt.Println(k.Title(), ":", v) })
   100  
   101  	sl.Iter().ForEach(func(v g.String) { v.Print() })
   102  
   103  	sl = sl.Iter().Unique().Collect()
   104  	sl.Reverse()
   105  
   106  	sl = sl.Iter().
   107  		Filter(
   108  			func(s g.String) bool {
   109  				return s != "bbb"
   110  			}).
   111  		Collect()
   112  
   113  	sl.Print()
   114  
   115  	fmt.Println(sl.Random())
   116  
   117  	sl1 := g.SliceOf(1, 2, 3, 4, 5) // declaration and assignation
   118  
   119  	fmt.Println(sl1.Iter().Fold(0, func(index, value int) int { return index + value })) // 15
   120  
   121  	sl3 := g.Slice[g.String]{} // declaration and assignation
   122  	sl3 = sl3.Append("aaaaa", "bbbbb")
   123  
   124  	fmt.Println(sl3.Last().Count("b")) // 5
   125  
   126  	sl4 := g.SliceOf([]string{"root", "toor"}...).Random()
   127  	g.NewString(sl4).Upper().Print()
   128  
   129  	sl3.Iter().Map(func(s g.String) g.String { return s + "MAPMAPMAP" }).Collect().Print()
   130  
   131  	empsl := g.NewSlice[g.String]()
   132  	fmt.Println(empsl.Empty())
   133  
   134  	// maps
   135  	m1 := g.MapFromStd(map[int]string{1: "root", 22: "toor"}) // declaration and assignation
   136  	m1.Iter().Values().Collect().Print()
   137  	m1.Iter().Keys().Collect().Print()
   138  
   139  	m2 := g.NewMap[int, string]() // declaration and assignation
   140  
   141  	m2[99] = "AAA"
   142  	m2[88] = "BBB"
   143  	m2.Set(77, "CCC")
   144  
   145  	m2.Delete(99).Print()
   146  	m2.Iter().Keys().Collect().Print()
   147  
   148  	m2.Print()
   149  	fmt.Println(m2.Std())
   150  
   151  	fmt.Println(m2.Invert().Iter().Values().Collect().Get(0))        // return int type
   152  	fmt.Println(m2.Invert().Iter().Keys().Collect().Get(0).(string)) // return any type, need assert to type
   153  
   154  	m3 := g.Map[string, string]{"test": "rest"} // declaration and assignation
   155  	fmt.Println(m3.Contains("test"))
   156  
   157  	ub := g.NewBytes("abcdef\u0301\u031dg")
   158  	ub.NormalizeNFC().Reverse().Print()
   159  
   160  	g.NewString("abcde丂g").Reverse().Print()
   161  
   162  	l := g.String("hello")
   163  	l.Similarity("world").Print()
   164  
   165  	hbs := g.Bytes("Hello, 世界!")
   166  	hbs.Reverse().ToString().Print() // "!界世 ,olleH"
   167  
   168  	hbs = g.Bytes("hello, world!")
   169  
   170  	hbs.Replace([]byte("l"), []byte("L"), 2).ToString().Print() // "heLLo, world!"
   171  
   172  	hs1 := g.String("kitten")
   173  	hs2 := g.String("sitting")
   174  	similarity := hs1.Similarity(hs2) // g.Float(57.14285714285714)
   175  
   176  	similarity.Print()
   177  
   178  	g.NewString("á").Dec().HTML().Print()
   179  
   180  	to := g.String("Hello, 世界!")
   181  
   182  	to.Enc().Hex().Print()
   183  	to.Enc().Hex().Dec().Hex().Unwrap().Print()
   184  
   185  	to.Enc().Octal().Print()
   186  	to.Enc().Octal().Dec().Octal().Unwrap().Print()
   187  
   188  	to.Enc().Binary().Chunks(8).Join(" ").Print()
   189  	to.Enc().Binary().Dec().Binary().Unwrap().Print()
   190  
   191  	toi := g.Int(1234567890)
   192  
   193  	toi.ToBinary().Print()
   194  	toi.ToOctal().Print()
   195  	toi.ToHex().Print()
   196  
   197  	ascii := g.String("💛💚💙💜")
   198  	fmt.Println(ascii.IsASCII())
   199  
   200  	reg := g.NewString("some text")
   201  	fmt.Println(reg.ContainsRegexp(`\w+`).Unwrap())
   202  
   203  	fmt.Println(g.String("example.com").EndsWith(".com", ".net"))
   204  
   205  	g.NewString("Hello").Format("%s world").Print()
   206  }