From bf5983682abb769df026347968deb3c1e8cb30fc Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Thu, 6 Feb 2020 21:58:15 +0700 Subject: [PATCH 01/25] Fix #33 - https://tour.golang.org/moretypes/1 --- sidik/moretypes_1.go | 14 ++++++++++++++ sidik/sidik.go | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 sidik/moretypes_1.go diff --git a/sidik/moretypes_1.go b/sidik/moretypes_1.go new file mode 100644 index 0000000..d48febc --- /dev/null +++ b/sidik/moretypes_1.go @@ -0,0 +1,14 @@ +package sidik + +import "fmt" + +func type1() { + i := 1000 + p := &i + fmt.Println("i before = ",i) + + *p = 2000 + + fmt.Println("i after = ",i) + +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index e7e34eb..e12766b 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -37,6 +37,8 @@ func Main() { flow12() flow13() flow14() + fmt.Printf("\n") + type1() } func basic1() { From ccb54e3b088c3bf604dbb5e20715775c39bcb53f Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Thu, 6 Feb 2020 22:14:30 +0700 Subject: [PATCH 02/25] Fix #33 - https://tour.golang.org/moretypes/2 --- sidik/moretypes_2.go | 13 +++++++++++++ sidik/sidik.go | 1 + 2 files changed, 14 insertions(+) create mode 100644 sidik/moretypes_2.go diff --git a/sidik/moretypes_2.go b/sidik/moretypes_2.go new file mode 100644 index 0000000..a4c65c0 --- /dev/null +++ b/sidik/moretypes_2.go @@ -0,0 +1,13 @@ +package sidik + +import "fmt" + +type Vertex struct { + X int + Y int + Z int +} + +func type2() { + fmt.Println(7, 5, 8) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index e12766b..d27e5ea 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -39,6 +39,7 @@ func Main() { flow14() fmt.Printf("\n") type1() + type2() } func basic1() { From 30a9dcb0079a9c20923ab96c33870d972200d2ac Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 07:24:23 +0700 Subject: [PATCH 03/25] Fix #33 - https://tour.golang.org/moretypes/3 --- sidik/moretypes_2.go | 2 +- sidik/moretypes_3.go | 18 ++++++++++++++++++ sidik/sidik.go | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 sidik/moretypes_3.go diff --git a/sidik/moretypes_2.go b/sidik/moretypes_2.go index a4c65c0..f4b1a8c 100644 --- a/sidik/moretypes_2.go +++ b/sidik/moretypes_2.go @@ -9,5 +9,5 @@ type Vertex struct { } func type2() { - fmt.Println(7, 5, 8) + fmt.Println(Vertex{7, 5, 8}) } \ No newline at end of file diff --git a/sidik/moretypes_3.go b/sidik/moretypes_3.go new file mode 100644 index 0000000..6fe77bc --- /dev/null +++ b/sidik/moretypes_3.go @@ -0,0 +1,18 @@ +package sidik + +import "fmt" + +type Vertex1 struct { + X int + Y int + Z int +} + +func type3() { //mengakses properti struct dengan titik + p := Vertex{8, 4, 10} + p.X = 19 + p.Z = 8 + + fmt.Println(p.X, p.Z) + +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index d27e5ea..6692fa3 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -40,6 +40,7 @@ func Main() { fmt.Printf("\n") type1() type2() + type3() } func basic1() { From 2cd5dec47c2dceaa12d92131363cdf900e7cf7a1 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 09:04:43 +0700 Subject: [PATCH 04/25] Fix #33 - https://tour.golang.org/moretypes/4 --- sidik/moretypes_4.go | 17 +++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 18 insertions(+) create mode 100644 sidik/moretypes_4.go diff --git a/sidik/moretypes_4.go b/sidik/moretypes_4.go new file mode 100644 index 0000000..806a94b --- /dev/null +++ b/sidik/moretypes_4.go @@ -0,0 +1,17 @@ +package sidik + +import "fmt" + +type Vertex2 struct { + X int + Y int +} + +func type4() { + i := Vertex2{2, 3} + p := &i + p.Y = 8 + + fmt.Println(i) + +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 6692fa3..af08036 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -41,6 +41,7 @@ func Main() { type1() type2() type3() + type4() } func basic1() { From 6d792352400d5ef0b05a90a2e5da23bc28dcd775 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 09:24:03 +0700 Subject: [PATCH 05/25] Fix #33 - https://tour.golang.org/moretypes/5 --- sidik/moretypes_5.go | 18 ++++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 19 insertions(+) create mode 100644 sidik/moretypes_5.go diff --git a/sidik/moretypes_5.go b/sidik/moretypes_5.go new file mode 100644 index 0000000..0988015 --- /dev/null +++ b/sidik/moretypes_5.go @@ -0,0 +1,18 @@ +package sidik + +import "fmt" + +type Vertex3 struct { + X, Y int +} + +var ( + v = Vertex3{5, 44} // struct asli + v2 = Vertex3{X:6} // mengakses satu property di struct + v3 = Vertex3{} // struct zzero value + p = &Vertex3{3,4} //pointer struct, harus dengan * jika ingin value yang asli +) + +func type5() { + fmt.Println(v, v2, v3, p) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index af08036..c581673 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -42,6 +42,7 @@ func Main() { type2() type3() type4() + type5() } func basic1() { From 96c7644c219b6c0d421c5edf7241078cd31c3daa Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 09:54:15 +0700 Subject: [PATCH 06/25] Fix #33 - https://tour.golang.org/moretypes/6 --- sidik/moretype_6.go | 17 +++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 18 insertions(+) create mode 100644 sidik/moretype_6.go diff --git a/sidik/moretype_6.go b/sidik/moretype_6.go new file mode 100644 index 0000000..e481a04 --- /dev/null +++ b/sidik/moretype_6.go @@ -0,0 +1,17 @@ +package sidik + +import "fmt" + +func type6() { + var s [3]string + s[0] = "sidik" + s[1] = "sudah" + s[2] = "go" + + fmt.Println(s[0], s[2]) + fmt.Println(s) + + primes := [4]int{1,2,3,4} + fmt.Println(primes) + +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index c581673..66b2032 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -43,6 +43,7 @@ func Main() { type3() type4() type5() + type6() } func basic1() { From 04fe945000c1e58c0982e08ef7a2605c06283641 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 10:03:25 +0700 Subject: [PATCH 07/25] Fix #33 - https://tour.golang.org/moretypes/7 --- sidik/{moretype_6.go => moretypes_6.go} | 0 sidik/moretypes_7.go | 10 ++++++++++ sidik/sidik.go | 1 + 3 files changed, 11 insertions(+) rename sidik/{moretype_6.go => moretypes_6.go} (100%) create mode 100644 sidik/moretypes_7.go diff --git a/sidik/moretype_6.go b/sidik/moretypes_6.go similarity index 100% rename from sidik/moretype_6.go rename to sidik/moretypes_6.go diff --git a/sidik/moretypes_7.go b/sidik/moretypes_7.go new file mode 100644 index 0000000..34b7c99 --- /dev/null +++ b/sidik/moretypes_7.go @@ -0,0 +1,10 @@ +package sidik + +import "fmt" + +func type7() { + prime := [6]int{12,3,42,4,5,3} + + var s []int = prime[1:4] + fmt.Println(s) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 66b2032..85ded53 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -44,6 +44,7 @@ func Main() { type4() type5() type6() + type7() } func basic1() { From 714ac4a942ae2497a6521171c4e6c752529a43db Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 10:48:11 +0700 Subject: [PATCH 08/25] Fix #33 - https://tour.golang.org/moretypes/8 --- sidik/moretypes_8.go | 24 ++++++++++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 25 insertions(+) create mode 100644 sidik/moretypes_8.go diff --git a/sidik/moretypes_8.go b/sidik/moretypes_8.go new file mode 100644 index 0000000..d41b740 --- /dev/null +++ b/sidik/moretypes_8.go @@ -0,0 +1,24 @@ +package sidik + +import "fmt" + +func type8() { + names := [4]string{ + "John", + "Paul", + "George", + "Ringo", + } + + fmt.Println(names) + + b := names[1:3] + a := names[0:2] + + fmt.Println(b, a) + + b[0] = "XXXx" + fmt.Println(b, a) + fmt.Println(names) + +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 85ded53..7efd174 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -45,6 +45,7 @@ func Main() { type5() type6() type7() + type8() } func basic1() { From fe4e2873a26d1963693208fa7b16330656861a64 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 13:22:12 +0700 Subject: [PATCH 09/25] Fix #33 - https://tour.golang.org/moretypes/9 --- sidik/moretypes_9.go | 29 +++++++++++++++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 30 insertions(+) create mode 100644 sidik/moretypes_9.go diff --git a/sidik/moretypes_9.go b/sidik/moretypes_9.go new file mode 100644 index 0000000..58d8ef4 --- /dev/null +++ b/sidik/moretypes_9.go @@ -0,0 +1,29 @@ +package sidik + +import "fmt" + +func type9() { + v := []int{4, 5, 6, 33, 5, 7} + fmt.Println(v) + + p := []bool{true, false, false, true, false} + fmt.Println(p) + + + s := []struct { + umur int + fact bool + }{ + {9, true}, + {11, true}, + {4, false}, + {6, true}, + {2, true}, + {3, false}, + {5, true}, + {7, true}, + {11, false}, + {13, true}, + } + fmt.Println(s) +} diff --git a/sidik/sidik.go b/sidik/sidik.go index 7efd174..444260f 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -46,6 +46,7 @@ func Main() { type6() type7() type8() + type9() } func basic1() { From aa422b847081c563bec906945af9311689f8105b Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 13:27:20 +0700 Subject: [PATCH 10/25] Fix #33 - https://tour.golang.org/moretypes/10 --- sidik/moretypes_10.go | 17 +++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 18 insertions(+) create mode 100644 sidik/moretypes_10.go diff --git a/sidik/moretypes_10.go b/sidik/moretypes_10.go new file mode 100644 index 0000000..df60b5c --- /dev/null +++ b/sidik/moretypes_10.go @@ -0,0 +1,17 @@ +package sidik + +import "fmt" + +func type10() { + s := []int{4,5,3,1,3,8,9} + + s = s[1:4] + fmt.Println(s) + + s = s[:2] + fmt.Println(s) + + s = s[:1] + fmt.Println(s) + +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 444260f..3e4ef0f 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -47,6 +47,7 @@ func Main() { type7() type8() type9() + type10() } func basic1() { From 4853ead2148ba1960c9ec2ee1d27498bdcd6f0f5 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 17:00:59 +0700 Subject: [PATCH 11/25] Fix #33 - https://tour.golang.org/moretypes/11 --- sidik/moretypes_11.go | 21 +++++++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 22 insertions(+) create mode 100644 sidik/moretypes_11.go diff --git a/sidik/moretypes_11.go b/sidik/moretypes_11.go new file mode 100644 index 0000000..08c2082 --- /dev/null +++ b/sidik/moretypes_11.go @@ -0,0 +1,21 @@ +package sidik + +import "fmt" + +func type11() { + s := []int{5, 2, 6, 7, 8, 9, 10} + printSlice(s) + + s = s[:0] + printSlice(s) + + s = s[:4] + printSlice(s) + + s = s[2:] + printSlice(s) +} + +func printSlice(s []int) { + fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 3e4ef0f..4aedd0b 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -48,6 +48,7 @@ func Main() { type8() type9() type10() + type11() } func basic1() { From 48c390ce9db76c7027f817386996f5dab547f6d1 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 17:05:49 +0700 Subject: [PATCH 12/25] Fix #33 - https://tour.golang.org/moretypes/12 --- sidik/moretypes_12.go | 12 ++++++++++++ sidik/sidik.go | 1 + 2 files changed, 13 insertions(+) create mode 100644 sidik/moretypes_12.go diff --git a/sidik/moretypes_12.go b/sidik/moretypes_12.go new file mode 100644 index 0000000..6f725b4 --- /dev/null +++ b/sidik/moretypes_12.go @@ -0,0 +1,12 @@ +package sidik + +import "fmt" + +func type12() { + var s []int + fmt.Println(s, len(s), cap(s)) + if s == nil { + fmt.Println("nil!") + } + +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 4aedd0b..0412847 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -49,6 +49,7 @@ func Main() { type9() type10() type11() + type12() } func basic1() { From f5f8b35ff115796c5f0ec7a2471343fc7a6dcf0a Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 19:49:38 +0700 Subject: [PATCH 13/25] Fix #33 - https://tour.golang.org/moretypes/13 --- sidik/moretypes_13.go | 21 +++++++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 22 insertions(+) create mode 100644 sidik/moretypes_13.go diff --git a/sidik/moretypes_13.go b/sidik/moretypes_13.go new file mode 100644 index 0000000..2751feb --- /dev/null +++ b/sidik/moretypes_13.go @@ -0,0 +1,21 @@ +package sidik + +import "fmt" + +func type13() { + a := make([]int , 5) + printSlice2("a", a) + + b := make([]int, 0, 5) + printSlice2("b", b) + + c := b[:2] + printSlice2("c", c) + + d := c[2:5] + printSlice2("d", d) +} + +func printSlice2(s string ,x []int) { + fmt.Printf("%s len=%d cap=%d %v\n", s , len(x), cap(x), x) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 0412847..437fcbf 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -50,6 +50,7 @@ func Main() { type10() type11() type12() + type13() } func basic1() { From 51bca6bc0d906597018f9fc4fa43297896efc769 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 20:40:32 +0700 Subject: [PATCH 14/25] Fix #33 - https://tour.golang.org/moretypes/14 --- sidik/moretypes_14.go | 24 ++++++++++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 25 insertions(+) create mode 100644 sidik/moretypes_14.go diff --git a/sidik/moretypes_14.go b/sidik/moretypes_14.go new file mode 100644 index 0000000..e61d186 --- /dev/null +++ b/sidik/moretypes_14.go @@ -0,0 +1,24 @@ +package sidik + +import ( + "fmt" + "strings" +) + +func type14() { + board := [][]string { + []string{"_", "_", "_"}, + []string{"_", "_", "_"}, + []string{"_", "_", "_"}, + } + + board[0][0] = "X" + board[2][2] = "O" + board[1][2] = "X" + board[1][0] = "O" + board[0][2] = "X" + + for i := 0; i < len(board); i++ { + fmt.Printf("%s\n", strings.Join(board[i], "")) + } +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 437fcbf..6d4af5e 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -51,6 +51,7 @@ func Main() { type11() type12() type13() + type14() } func basic1() { From 62052b05bd34c63a13dbfd85fe84e242552c8b0a Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 20:46:47 +0700 Subject: [PATCH 15/25] Fix #33 - https://tour.golang.org/moretypes/15 --- sidik/moretypes_15.go | 19 +++++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 20 insertions(+) create mode 100644 sidik/moretypes_15.go diff --git a/sidik/moretypes_15.go b/sidik/moretypes_15.go new file mode 100644 index 0000000..c05a7ce --- /dev/null +++ b/sidik/moretypes_15.go @@ -0,0 +1,19 @@ +package sidik + +import "fmt" + +func type15() { + var s []int + printSlice3(s) + + s = append(s, 1) + printSlice3(s) + + s = append(s, 2,3,4) + printSlice3(s) + +} + +func printSlice3(s []int) { + fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 6d4af5e..b8d5fec 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -52,6 +52,7 @@ func Main() { type12() type13() type14() + type15() } func basic1() { From 9c012476bb16a0a08a5d2dd739f2ea654014960e Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 20:53:56 +0700 Subject: [PATCH 16/25] Fix #33 - https://tour.golang.org/moretypes/16 --- sidik/moretypes_16.go | 11 +++++++++++ sidik/sidik.go | 1 + 2 files changed, 12 insertions(+) create mode 100644 sidik/moretypes_16.go diff --git a/sidik/moretypes_16.go b/sidik/moretypes_16.go new file mode 100644 index 0000000..a90ce60 --- /dev/null +++ b/sidik/moretypes_16.go @@ -0,0 +1,11 @@ +package sidik + +import "fmt" + +var poq = []int{1, 2, 4, 8, 16, 32, 64, 128} + +func type16() { + for i, v := range poq { + fmt.Printf("2**%d = %d\n", i, v) + } +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index b8d5fec..2ece6d9 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -53,6 +53,7 @@ func Main() { type13() type14() type15() + type16() } func basic1() { From eb528b65d9e95811f12eab652fa68475af5f5197 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 21:11:14 +0700 Subject: [PATCH 17/25] Fix #33 - https://tour.golang.org/moretypes/17 --- sidik/moretypes_17.go | 15 +++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 16 insertions(+) create mode 100644 sidik/moretypes_17.go diff --git a/sidik/moretypes_17.go b/sidik/moretypes_17.go new file mode 100644 index 0000000..104d359 --- /dev/null +++ b/sidik/moretypes_17.go @@ -0,0 +1,15 @@ +package sidik + +import "fmt" + +func type17() { + ppow := make([]int, 10) + for i := range ppow { + ppow[i] = 1 << uint(i) // 2**i + + } + + for _, value := range ppow { + fmt.Printf("%d\n", value) + } +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 2ece6d9..57d7ad6 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -54,6 +54,7 @@ func Main() { type14() type15() type16() + type17() } func basic1() { From 1dcb076496c8d6b4593d82b9ba006c61ded991fb Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 21:33:12 +0700 Subject: [PATCH 18/25] Fix #33 - https://tour.golang.org/moretypes/18 --- sidik/moretypes_18.go | 11 +++++++++++ sidik/sidik.go | 1 + 2 files changed, 12 insertions(+) create mode 100644 sidik/moretypes_18.go diff --git a/sidik/moretypes_18.go b/sidik/moretypes_18.go new file mode 100644 index 0000000..15a0191 --- /dev/null +++ b/sidik/moretypes_18.go @@ -0,0 +1,11 @@ +package sidik + +import "golang.org/x/tour/pic" + +func Pic(dx, dy int) [][]uint8 { + return dx*dy +} + +func type18() { + pic.Show(Pic) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 57d7ad6..a371c07 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -55,6 +55,7 @@ func Main() { type15() type16() type17() + // type18() } func basic1() { From c79a09f13b3daa16551e784513e804e3a79ce13a Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Fri, 7 Feb 2020 21:52:14 +0700 Subject: [PATCH 19/25] Fix #33 - https://tour.golang.org/moretypes/19 --- sidik/moretypes_18.go | 14 +++++++------- sidik/moretypes_19.go | 19 +++++++++++++++++++ sidik/sidik.go | 1 + 3 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 sidik/moretypes_19.go diff --git a/sidik/moretypes_18.go b/sidik/moretypes_18.go index 15a0191..230eeef 100644 --- a/sidik/moretypes_18.go +++ b/sidik/moretypes_18.go @@ -1,11 +1,11 @@ package sidik -import "golang.org/x/tour/pic" +// import "golang.org/x/tour/pic" -func Pic(dx, dy int) [][]uint8 { - return dx*dy -} +// func Pic(dx, dy int) [][]uint8 { +// return x*y +// } -func type18() { - pic.Show(Pic) -} \ No newline at end of file +// func type18() { +// pic.Show(Pic) +// } \ No newline at end of file diff --git a/sidik/moretypes_19.go b/sidik/moretypes_19.go new file mode 100644 index 0000000..22cfc81 --- /dev/null +++ b/sidik/moretypes_19.go @@ -0,0 +1,19 @@ +package sidik + +import "fmt" + +type Vertexx struct { + Lat, Long float64 +} + +var m map[string]Vertexx + +func type19() { + m = make(map[string]Vertexx) + m["Bell Labs"] = Vertexx{ + 40.68433, -74.39967, + } + + fmt.Println(m["Bell Labs"]) + +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index a371c07..2c9730d 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -56,6 +56,7 @@ func Main() { type16() type17() // type18() + type19() } func basic1() { From 3075dcc43cf588eb3bba3aad551b993292d8e778 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Sun, 9 Feb 2020 14:31:51 +0700 Subject: [PATCH 20/25] Fix #33 - https://tour.golang.org/moretypes/20-21 --- sidik/moretypes_20.go | 20 ++++++++++++++++++++ sidik/moretypes_21.go | 16 ++++++++++++++++ sidik/sidik.go | 2 ++ 3 files changed, 38 insertions(+) create mode 100644 sidik/moretypes_20.go create mode 100644 sidik/moretypes_21.go diff --git a/sidik/moretypes_20.go b/sidik/moretypes_20.go new file mode 100644 index 0000000..d4ed66f --- /dev/null +++ b/sidik/moretypes_20.go @@ -0,0 +1,20 @@ +package sidik + +import "fmt" + +type Vertex4 struct{ + Lat, Long float64 +} + +var mn = map[string]Vertex4{ + "Bell Labs" : Vertex4{ + 40.68433, -74.39967, + }, + "Google Inc" : Vertex4{ + 37.42202, -122.08408, + }, +} + +func type20() { + fmt.Println(mn) +} \ No newline at end of file diff --git a/sidik/moretypes_21.go b/sidik/moretypes_21.go new file mode 100644 index 0000000..553680f --- /dev/null +++ b/sidik/moretypes_21.go @@ -0,0 +1,16 @@ +package sidik + +import "fmt" + +type Vertex5 struct { + Lat, Long float64 +} + +var maa = map[string]Vertex5{ + "Bell Labs": {40.68433, -74.39967}, + "Google Inc" : {37.42202, -122.08408}, +} + +func type21() { + fmt.Println(maa) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 2c9730d..f169267 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -57,6 +57,8 @@ func Main() { type17() // type18() type19() + type20() + type21() } func basic1() { From 800cc02ddef2b139f6cc1251a15607c35471c87d Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Sun, 9 Feb 2020 14:39:27 +0700 Subject: [PATCH 21/25] Fix #33 - https://tour.golang.org/moretypes/22 --- sidik/moretypes_22.go | 19 +++++++++++++++++++ sidik/sidik.go | 1 + 2 files changed, 20 insertions(+) create mode 100644 sidik/moretypes_22.go diff --git a/sidik/moretypes_22.go b/sidik/moretypes_22.go new file mode 100644 index 0000000..e4f8acf --- /dev/null +++ b/sidik/moretypes_22.go @@ -0,0 +1,19 @@ +package sidik + +import "fmt" + +func type22() { + mm := make(map[string]int) + + mm["Answer"] = 42 + fmt.Println("The Value: ", mm["Answer"]) + + mm["Answer"] = 48 + fmt.Println("The Value: ", mm["Answer"]) + + delete(mm, "Answer") + fmt.Println("The Value: ", mm["Answer"]) + + v, ok := mm["Answer"] + fmt.Println("The Value: ", v ,"Present", ok) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index f169267..74d696c 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -59,6 +59,7 @@ func Main() { type19() type20() type21() + type22() } func basic1() { From a0ea9972c205b33680770a912801a32a6762c1dc Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Sun, 9 Feb 2020 16:33:21 +0700 Subject: [PATCH 22/25] Fix #33 - https://tour.golang.org/moretypes/23-24 --- sidik/moretypes_18.go | 16 +++++++++------- sidik/moretypes_23.go | 13 +++++++++++++ sidik/moretypes_24.go | 21 +++++++++++++++++++++ sidik/sidik.go | 2 ++ 4 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 sidik/moretypes_23.go create mode 100644 sidik/moretypes_24.go diff --git a/sidik/moretypes_18.go b/sidik/moretypes_18.go index 230eeef..16e640a 100644 --- a/sidik/moretypes_18.go +++ b/sidik/moretypes_18.go @@ -1,11 +1,13 @@ package sidik -// import "golang.org/x/tour/pic" +import ( + "golang.org/x/tour/pic" +) -// func Pic(dx, dy int) [][]uint8 { -// return x*y -// } +func Pic(dx, dy int) [][]uint8 { + return dx, dy +} -// func type18() { -// pic.Show(Pic) -// } \ No newline at end of file +func type18() { + pic.Show(Pic) +} \ No newline at end of file diff --git a/sidik/moretypes_23.go b/sidik/moretypes_23.go new file mode 100644 index 0000000..b9927c4 --- /dev/null +++ b/sidik/moretypes_23.go @@ -0,0 +1,13 @@ +package sidik + +import ( + "golang.org/x/tour/wc" +) + +func WordCount(s string) map[string]int { + return map[string]int{s: 1} +} + +func type23() { + wc.Test(WordCount) +} \ No newline at end of file diff --git a/sidik/moretypes_24.go b/sidik/moretypes_24.go new file mode 100644 index 0000000..9b60c2b --- /dev/null +++ b/sidik/moretypes_24.go @@ -0,0 +1,21 @@ +package sidik + +import ( + "fmt" + "math" +) + +func compute(fn func(float64, float64) float64) float64 { + return fn(3, 4) +} + +func type24() { + hypot := func (x, y float64) float64 { + return math.Sqrt(x*x + y*y) + } + + fmt.Println(hypot(5, 12)) + + fmt.Println(compute(hypot)) + fmt.Println(compute(math.Pow)) +} \ No newline at end of file diff --git a/sidik/sidik.go b/sidik/sidik.go index 74d696c..c1b2841 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -60,6 +60,8 @@ func Main() { type20() type21() type22() + // type23() + type24() } func basic1() { From 202983487b84d70caaf2460522479f5e99f1f12e Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Tue, 11 Feb 2020 11:30:22 +0700 Subject: [PATCH 23/25] Fix #33 - https://tour.golang.org/moretypes/18 --- sidik/moretypes_18.go | 10 +++++++++- sidik/sidik.go | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sidik/moretypes_18.go b/sidik/moretypes_18.go index 16e640a..7a00622 100644 --- a/sidik/moretypes_18.go +++ b/sidik/moretypes_18.go @@ -5,7 +5,15 @@ import ( ) func Pic(dx, dy int) [][]uint8 { - return dx, dy + sdx := make([][]uint8, dx) + for y := 0; y < dy; y++ { + sdy := make([]uint8, dy) + for x := 0; x < dx; x++ { + sdy[x] = uint8((x+y)*4) + } + sdx[y] = sdy + } + return sdx } func type18() { diff --git a/sidik/sidik.go b/sidik/sidik.go index c1b2841..ac0f30f 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -1,5 +1,7 @@ package sidik +/* بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم */ + import "fmt" import "math" @@ -55,7 +57,7 @@ func Main() { type15() type16() type17() - // type18() + type18() type19() type20() type21() From cc76b5a652b6b7322acc99e68c067aeb85f1f2d0 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Wed, 12 Feb 2020 13:31:46 +0700 Subject: [PATCH 24/25] Fix #33 - https://tour.golang.org/moretypes/23 --- sidik/moretypes_23.go | 6 +++--- sidik/sidik.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sidik/moretypes_23.go b/sidik/moretypes_23.go index b9927c4..786db1c 100644 --- a/sidik/moretypes_23.go +++ b/sidik/moretypes_23.go @@ -1,13 +1,13 @@ package sidik -import ( +import ( "golang.org/x/tour/wc" ) func WordCount(s string) map[string]int { - return map[string]int{s: 1} + return map[string]int{"learning": 1} } func type23() { wc.Test(WordCount) -} \ No newline at end of file +} diff --git a/sidik/sidik.go b/sidik/sidik.go index ac0f30f..e3b599b 100644 --- a/sidik/sidik.go +++ b/sidik/sidik.go @@ -62,7 +62,7 @@ func Main() { type20() type21() type22() - // type23() + type23() type24() } From 8b26ba24a881517a724c588cc81a5ccc70d3c486 Mon Sep 17 00:00:00 2001 From: Muhammad Sidik Date: Sat, 15 Feb 2020 13:53:13 +0700 Subject: [PATCH 25/25] Fix #33 - https://tour.golang.org/moretypes/23 --- sidik/moretypes_23.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sidik/moretypes_23.go b/sidik/moretypes_23.go index 786db1c..b7b76b3 100644 --- a/sidik/moretypes_23.go +++ b/sidik/moretypes_23.go @@ -1,11 +1,20 @@ package sidik -import ( +import ( + "strings" + "golang.org/x/tour/wc" ) func WordCount(s string) map[string]int { - return map[string]int{"learning": 1} + words := strings.Fields(s) + result := make(map[string]int) + + for _, word := range words{ + result[word] += 1 + } + + return result } func type23() {