Skip to content

Commit 9abd45e

Browse files
committed
0 parents  commit 9abd45e

File tree

12 files changed

+320
-0
lines changed

12 files changed

+320
-0
lines changed

Diff for: arrays/main.go

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var a [5]int
7+
fmt.Println("emp:", a)
8+
9+
a[4] = 100
10+
fmt.Println("set: ", a)
11+
fmt.Println("get: ", a[4])
12+
13+
fmt.Println("len: ", len(a))
14+
15+
b := [5]int{1, 2, 3, 4, 5}
16+
fmt.Println("dcl: ", b)
17+
18+
var twoD [2][3]int
19+
for i := 0; i < 2; i++ {
20+
for j := 0; j < 3; j++ {
21+
twoD[i][j] = i + j
22+
}
23+
}
24+
fmt.Println("2d: ", twoD)
25+
}

Diff for: constants/main.go

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"math"
6+
)
7+
8+
const s string = "constant"
9+
10+
func main() {
11+
fmt.Println(s)
12+
13+
const n = 500000000
14+
15+
const d = 3e20 / n
16+
fmt.Println(d)
17+
18+
fmt.Println(int64(d))
19+
20+
fmt.Println(math.Sin(n))
21+
}

Diff for: for/main.go

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
i := 1
7+
for i <= 3 {
8+
fmt.Println(i)
9+
i = i + 1
10+
}
11+
12+
for j := 7; j <= 9; j++ {
13+
fmt.Println(j)
14+
}
15+
16+
for {
17+
fmt.Println("loop")
18+
break
19+
}
20+
21+
for n := 0; n <= 5; n++ {
22+
if n%2 == 0 {
23+
continue
24+
}
25+
fmt.Println(n)
26+
}
27+
}

Diff for: go.mod

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module github.com/nonthasart/gobyexample
2+
3+
go 1.21.5

Diff for: hello-world/main.go

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
fmt.Println("hello world")
7+
}

Diff for: if-else/main.go

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
if 7%2 == 0 {
7+
fmt.Println("7 is even")
8+
} else {
9+
fmt.Println("7 is odd")
10+
}
11+
12+
if 8%4 == 0 {
13+
fmt.Println("8 is divisible by 4")
14+
}
15+
16+
if 7%2 == 0 || 8%2 == 0 {
17+
fmt.Println("either 8 or 7 is even")
18+
}
19+
20+
if num := 9; num <= 0 {
21+
fmt.Println(num, "is negative")
22+
} else if num < 10 {
23+
fmt.Println(num, "has 1 digit")
24+
} else {
25+
fmt.Println(num, "has multiple digits")
26+
}
27+
}

Diff for: maps/main.go

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"maps"
6+
)
7+
8+
func main() {
9+
m := make(map[string]int)
10+
11+
m["k1"] = 7
12+
m["k2"] = 13
13+
14+
fmt.Println("map:", m)
15+
16+
v1 := m["k1"]
17+
fmt.Println("v1:", v1)
18+
19+
v3 := m["k3"]
20+
fmt.Println("v3:", v3)
21+
22+
fmt.Println("len:", len(m))
23+
24+
delete(m, "k2")
25+
fmt.Println("map:", m)
26+
27+
clear(m)
28+
fmt.Println("map:", m)
29+
30+
_, prs := m["k2"]
31+
fmt.Println("prs", prs)
32+
33+
n := map[string]int{"foo": 1, "bar": 2}
34+
fmt.Println("map:", n)
35+
36+
n2 := map[string]int{"foo": 1, "bar": 2}
37+
if maps.Equal(n, n2) {
38+
fmt.Println("n == n2")
39+
}
40+
}

Diff for: range/main.go

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
nums := []int{2, 3, 4}
7+
sum := 0
8+
for _, num := range nums {
9+
sum += num
10+
}
11+
fmt.Println("sum:", sum)
12+
13+
for i, num := range nums {
14+
if num == 3 {
15+
fmt.Println("index:", i)
16+
}
17+
}
18+
19+
kvs := map[string]string{"a": "apple", "b": "banana"}
20+
for k, v := range kvs {
21+
fmt.Printf("%s -> %s\n", k, v)
22+
}
23+
24+
for k := range kvs {
25+
fmt.Println("key:", k)
26+
}
27+
28+
for i, c := range "go" {
29+
fmt.Println(i, c)
30+
}
31+
}

Diff for: slices/main.go

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"slices"
6+
)
7+
8+
func main() {
9+
var s []string
10+
fmt.Println("uninit:", s, s == nil, len(s) == 0)
11+
12+
s = make([]string, 3)
13+
fmt.Println("emp:", s, "len:", len(s), "cap:", cap(s))
14+
15+
s[0] = "a"
16+
s[1] = "b"
17+
s[2] = "c"
18+
fmt.Println("set:", s)
19+
fmt.Println("get:", s[2])
20+
21+
fmt.Println("len:", len(s))
22+
23+
s = append(s, "d")
24+
s = append(s, "e", "f")
25+
fmt.Println("apd:", s)
26+
27+
c := make([]string, len(s))
28+
copy(c, s)
29+
fmt.Println("cpy:", c)
30+
31+
l := s[2:5]
32+
fmt.Println("sl1:", l)
33+
34+
l = s[:5]
35+
fmt.Println("sl2:", l)
36+
37+
l = s[2:]
38+
fmt.Println("sl3:", l)
39+
40+
t := []string{"g", "h", "i"}
41+
fmt.Println("dcl:", t)
42+
43+
t2 := []string{"g", "h", "i"}
44+
if slices.Equal(t, t2) {
45+
fmt.Println("t == t2")
46+
}
47+
48+
twoD := make([][]int, 3)
49+
for i := 0; i < 3; i++ {
50+
innerLen := i + 1
51+
twoD[i] = make([]int, innerLen)
52+
for j := 0; j < innerLen; j++ {
53+
twoD[i][j] = i + j
54+
}
55+
}
56+
fmt.Println("2d:", twoD)
57+
}

Diff for: switch/main.go

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"time"
6+
)
7+
8+
func main() {
9+
i := 2
10+
fmt.Print("Write ", i, " as ")
11+
switch i {
12+
case 1:
13+
fmt.Println("one")
14+
case 2:
15+
fmt.Println("two")
16+
case 3:
17+
fmt.Println("three")
18+
}
19+
20+
switch time.Now().Weekday() {
21+
case time.Saturday, time.Sunday:
22+
fmt.Println("It's the weekend")
23+
default:
24+
fmt.Println("It's a weekday")
25+
}
26+
27+
t := time.Now()
28+
switch {
29+
case t.Hour() < 12:
30+
fmt.Println("It's before noon")
31+
default:
32+
fmt.Println("It's after noon")
33+
}
34+
35+
whatAmI := func(i interface{}) {
36+
switch t := i.(type) {
37+
case bool:
38+
fmt.Println("I'm a bool")
39+
case int:
40+
fmt.Println("I'm an int")
41+
default:
42+
fmt.Printf("Don't know type %T\n", t)
43+
}
44+
}
45+
whatAmI(true)
46+
whatAmI(1)
47+
whatAmI("hey")
48+
}

Diff for: values/main.go

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
fmt.Println("go" + "lang")
7+
8+
fmt.Println("1+1 =", 1+1)
9+
fmt.Println("7.0/3.0 =", 7.0/3.0)
10+
11+
fmt.Println(true && false)
12+
fmt.Println(true || false)
13+
fmt.Println(!true)
14+
}

Diff for: variables/main.go

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var a = "initial"
7+
fmt.Println(a)
8+
9+
var b, c int = 1, 2
10+
fmt.Println(b, c)
11+
12+
var d = true
13+
fmt.Println(d)
14+
15+
var e int
16+
fmt.Println(e)
17+
18+
f := "apple"
19+
fmt.Println(f)
20+
}

0 commit comments

Comments
 (0)