From e5820a4c03d3647c37424016dff0b2009f7899f9 Mon Sep 17 00:00:00 2001 From: Greg Gauthier Date: Mon, 1 Mar 2021 18:12:37 +0000 Subject: [PATCH] initial commit --- .gitignore | 4 ++++ arrays.go | 36 ++++++++++++++++++++++++++++++++++ forloop.go | 28 +++++++++++++++++++++++++++ hello-world.go | 7 +++++++ if-else.go | 24 +++++++++++++++++++++++ maths.go | 21 ++++++++++++++++++++ slices.go | 47 +++++++++++++++++++++++++++++++++++++++++++++ switcher.go | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ values.go | 15 +++++++++++++++ variables.go | 21 ++++++++++++++++++++ 10 files changed, 255 insertions(+) create mode 100644 .gitignore create mode 100644 arrays.go create mode 100644 forloop.go create mode 100644 hello-world.go create mode 100644 if-else.go create mode 100644 maths.go create mode 100644 slices.go create mode 100644 switcher.go create mode 100644 values.go create mode 100644 variables.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d06187e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.idea/ +build/ +pymodule/ +*.iml \ No newline at end of file diff --git a/arrays.go b/arrays.go new file mode 100644 index 0000000..5bbdab5 --- /dev/null +++ b/arrays.go @@ -0,0 +1,36 @@ +package main + +import "fmt" + +func main() { + + var a [5]int + fmt.Println("emp:", a) + + a[4] = 100 + fmt.Println("set:", a) + fmt.Println("get:", a[4]) + + fmt.Println("len:", len(a)) + + b := [5]int{1, 2, 3, 4, 5} + fmt.Println("dcl:", b) + + var twoD [2][3]int + for i := 0; i < 2; i++ { + for j := 0; j < 3; j++ { + twoD[i][j] = i + j + } + } + fmt.Println("2d: ", twoD) + + var threeD [3][6][9]int + for i := 0; i < 3; i++ { + for j := 0; j < 6; j++ { + for k := 0; k < 9; k++ { + threeD[i][j][k] = i + j + k + } + } + } + fmt.Println("3D: ", threeD) +} diff --git a/forloop.go b/forloop.go new file mode 100644 index 0000000..c271793 --- /dev/null +++ b/forloop.go @@ -0,0 +1,28 @@ +package main + +import "fmt" + +func main() { + + i := 1 + for i <= 3 { + fmt.Println(i) + i = i + 1 + } + + for j := 7; j <= 9; j++ { + fmt.Println(j) + } + + for { + fmt.Println("loop") + break + } + + for n := 0; n <= 5; n++ { + if n%2 == 0 { + continue + } + fmt.Println(n) + } +} diff --git a/hello-world.go b/hello-world.go new file mode 100644 index 0000000..c048119 --- /dev/null +++ b/hello-world.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("hello world") +} diff --git a/if-else.go b/if-else.go new file mode 100644 index 0000000..1d2405c --- /dev/null +++ b/if-else.go @@ -0,0 +1,24 @@ +package main + +import "fmt" + +func main() { + + if 7%2 == 0 { + fmt.Println("7 is even") + } else { + fmt.Println("7 is odd") + } + + if 8%4 == 0 { + fmt.Println("8 is divisible by 4") + } + + if num := 9; num < 0 { + fmt.Println(num, "is negative") + } else if num < 10 { + fmt.Println(num, "has 1 digit") + } else { + fmt.Println(num, "has multiple digits") + } +} diff --git a/maths.go b/maths.go new file mode 100644 index 0000000..251d5ce --- /dev/null +++ b/maths.go @@ -0,0 +1,21 @@ +package main + +import ( + "fmt" + "math" +) + +const s string = "constant" + +func main() { + fmt.Println(s) + + const n = 500000000 + + const d = 3e20 / n + fmt.Println(d) + + fmt.Println(int64(d)) + + fmt.Println(math.Sin(n)) +} diff --git a/slices.go b/slices.go new file mode 100644 index 0000000..44a9cd4 --- /dev/null +++ b/slices.go @@ -0,0 +1,47 @@ +package main + +import "fmt" + +func main() { + + s := make([]string, 3) + fmt.Println("emp:", s) + + s[0] = "a" + s[1] = "b" + s[2] = "c" + fmt.Println("set:", s) + fmt.Println("get:", s[2]) + + fmt.Println("len:", len(s)) + + s = append(s, "d") + s = append(s, "e", "f") + fmt.Println("apd:", s) + + c := make([]string, len(s)) + copy(c, s) + fmt.Println("cpy:", c) + + l := s[2:5] + fmt.Println("sl1:", l) + + l = s[:5] + fmt.Println("sl2:", l) + + l = s[2:] + fmt.Println("sl3:", l) + + t := []string{"g", "h", "i"} + fmt.Println("dcl:", t) + + twoD := make([][]int, 3) + for i := 0; i < 3; i++ { + innerLen := i + 1 + twoD[i] = make([]int, innerLen) + for j := 0; j < innerLen; j++ { + twoD[i][j] = i + j + } + } + fmt.Println("2d: ", twoD) +} diff --git a/switcher.go b/switcher.go new file mode 100644 index 0000000..1eae8eb --- /dev/null +++ b/switcher.go @@ -0,0 +1,52 @@ +package main + +import ( + "fmt" + "time" +) + +func main() { + + i := 2 + fmt.Print("Write ", i, " as ") + switch i { + case 1: + fmt.Println("one") + case 2: + fmt.Println("two") + case 3: + fmt.Println("three") + } + + switch time.Now().Weekday() { + case time.Saturday, time.Sunday: + fmt.Println("It's the weekend") + default: + fmt.Println("It's a weekday") + } + + t := time.Now() + switch { + case t.Hour() < 12: + fmt.Println("It's before noon") + default: + fmt.Println("It's after noon") + } + + whatAmI := func(i interface{}) { + switch t := i.(type) { + case bool: + fmt.Println("I'm a bool") + case int: + fmt.Println("I'm an int") + case string: + fmt.Println("I'm a string") + default: + fmt.Printf("Don't know type %T\n", t) + } + } + whatAmI(true) + whatAmI(1) + whatAmI("hey") + whatAmI(new(time.Duration)) +} diff --git a/values.go b/values.go new file mode 100644 index 0000000..2da0a0c --- /dev/null +++ b/values.go @@ -0,0 +1,15 @@ +package main + +import "fmt" + +func main() { + + fmt.Println("go" + "lang") + + fmt.Println("1+1 =", 1+1) + fmt.Println("7.0/3.0 =", 7.0/3.0) + + fmt.Println(true && false) + fmt.Println(true || false) + fmt.Println(!true) +} diff --git a/variables.go b/variables.go new file mode 100644 index 0000000..18d1535 --- /dev/null +++ b/variables.go @@ -0,0 +1,21 @@ +package main + +import "fmt" + +func main() { + + var a = "initial" + fmt.Println(a) + + var b, c int = 1, 2 + fmt.Println(b, c) + + var d = true + fmt.Println(d) + + var e int + fmt.Println(e) + + f := "apple" + fmt.Println(f) +}