Skip to content

Commit ea14b75

Browse files
authored
Merge pull request #1 from 0bvim/feat/section13
feat/section13
2 parents 7e66776 + 3b431bc commit ea14b75

6 files changed

Lines changed: 167 additions & 0 deletions

File tree

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"slices"
6+
)
7+
8+
func main() {
9+
xi := []int{42, 43, 44}
10+
fmt.Println(xi)
11+
fmt.Println("----------------------")
12+
13+
// can appende variadic values
14+
xi = append(xi, 12, 13, 14, 15, 555, 111, 222)
15+
fmt.Println(xi)
16+
fmt.Println("----------------------")
17+
18+
xi = append(xi, 6943, 234, 2349)
19+
fmt.Println(xi)
20+
fmt.Println("----------------------")
21+
22+
// print len exclusive (one way)
23+
fmt.Println(xi[len(xi)-1])
24+
fmt.Println("----------------------")
25+
26+
// [inclusive:exclusive]
27+
fmt.Printf("inc/exc xi: %#v\n", xi[0:4])
28+
fmt.Println("----------------------")
29+
30+
// [exclusive]
31+
fmt.Printf("exclusive xi: %#v\n", xi[:7])
32+
fmt.Println("----------------------")
33+
34+
// [inclusive]
35+
fmt.Printf("inclusive xi: %#v\n", xi[7:])
36+
fmt.Println("----------------------")
37+
38+
// [all] can be just variable name too
39+
fmt.Printf("all xi: %#v\n", xi[:])
40+
fmt.Println("----------------------")
41+
42+
// to delete or remove
43+
xi = append(xi[:4], xi[5:]...)
44+
fmt.Printf("deleting xi: %v\n", xi)
45+
fmt.Println("----------------------")
46+
47+
// copy slice
48+
xiCopy := make([]int, len(xi))
49+
copy(xiCopy, xi)
50+
fmt.Println("copy xi:", xiCopy)
51+
fmt.Println("----------------------")
52+
53+
// reverse slice
54+
slices.Reverse(xi)
55+
fmt.Printf("reverse xi: %v\n", xi)
56+
fmt.Println("----------------------")
57+
58+
// sort slice
59+
slices.Sort(xi)
60+
fmt.Printf("sorted xi: %v\n", xi)
61+
fmt.Println("----------------------")
62+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
xs := []string{"Almond Biscotti Café", "Banana Pudding ", "Balsamic Strawberry (GF)"}
7+
fmt.Println(xs)
8+
fmt.Printf("Type of variable\t%T\n", xs)
9+
10+
for _, v := range xs {
11+
fmt.Printf("%v\n", v)
12+
}
13+
14+
fmt.Println("----------------------")
15+
fmt.Println(xs[0])
16+
fmt.Println(xs[1])
17+
fmt.Println(xs[2])
18+
fmt.Println("len of slice", len(xs))
19+
20+
fmt.Println("----------------------")
21+
for i := 0; i < len(xs); i++ {
22+
fmt.Println(xs[i])
23+
}
24+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
si := []string{"a", "b", "c"}
7+
fmt.Printf("si: %v\n", si)
8+
9+
xi := make([]int, 0, 10)
10+
11+
fmt.Printf("xi: %v\n", xi)
12+
fmt.Printf("len(xi): %v\n", len(xi))
13+
fmt.Printf("cap(xi): %v\n", cap(xi))
14+
xi = append(xi, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
15+
fmt.Printf("xi: %v\n", xi)
16+
17+
fmt.Println("----------------")
18+
19+
xi = append(xi, 11, 12, 13, 14, 15)
20+
fmt.Printf("xi: %v\n", xi)
21+
fmt.Printf("len(xi): %v\n", len(xi))
22+
fmt.Printf("cap(xi): %v\n", cap(xi))
23+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
// slices in slices
7+
jb := []string{"James", "Bond", "Martini", "Chocolate"}
8+
jm := []string{"Jenny", "Moneypenny", "Guiness", "Wolverine Tracks"}
9+
fmt.Printf("jb: %v\n", jb)
10+
fmt.Printf("jm: %v\n", jm)
11+
12+
xp := [][]string{jb, jm}
13+
xxp := [][]string{jb, jm}
14+
xxxp := [][][]string{xp, xxp}
15+
fmt.Printf("xxp: %v\n", xxp)
16+
fmt.Printf("xp: %v\n", xp)
17+
fmt.Printf("xxxp: %v\n", xxxp)
18+
19+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
xs := []string{"Almond Biscotti Café", "Banana Pudding ", "Balsamic Strawberry (GF)", "Bittersweet Chocolate (GF)", "Blueberry Pancake (GF)", "Bourbon Turtle (GF)", "Browned Butter Cookie Dough", "Chocolate Covered Black Cherry (GF)", "Chocolate Fudge Brownie", "Chocolate Peanut Butter (GF)", "Coffee (GF)", "Cookies & Cream", "Fresh Basil (GF)", "Garden Mint Chip (GF)", "Lavender Lemon Honey (GF)", "Lemon Bar", "Madagascar Vanilla (GF)", "Matcha (GF)", "Midnight Chocolate Sorbet (GF, V)", "Non-Dairy Chocolate Peanut Butter (GF, V)", "Non-Dairy Coconut Matcha (GF, V)", "Non-Dairy Sunbutter Cinnamon (GF, V)", "Orange Cream (GF) ", "Peanut Butter Cookie Dough", "Raspberry Sorbet (GF, V)", "Salty Caramel (GF)", "Slate Slate Different", "Strawberry Lemonade Sorbet (GF, V)", "Vanilla Caramel Blondie", "Vietnamese Cinnamon (GF)", "Wolverine Tracks (GF)"}
7+
// print entire values in variable at once
8+
fmt.Println(xs)
9+
// %T -> show the type of variable
10+
fmt.Printf("Type of variable\t%T\n", xs)
11+
12+
// 'i' is the counter
13+
// v stands for value and will receive each item in slice to be manipulated
14+
for i, v := range xs {
15+
// to print index and value
16+
fmt.Printf("%v - %v\n", i, v)
17+
}
18+
fmt.Println()
19+
20+
// new values for the follwing test
21+
xs = []string{"Al", "Mon", "De", "Ga"}
22+
// you can use too blank identifier ('_')to ignore index counter and just get the value
23+
for _, v := range xs {
24+
fmt.Printf("%v\n", v)
25+
}
26+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
a := []int{1, 2, 3, 4, 5, 6}
7+
b := make([]int, len(a))
8+
copy(b, a)
9+
b[0] = 7
10+
fmt.Printf("b: %v\n", b)
11+
fmt.Printf("a: %v\n", a)
12+
13+
}

0 commit comments

Comments
 (0)