Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Learn go basics #150

Open
wants to merge 44 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
0d85e1c
Added solution for 1 and 2
mzhou356 Mar 30, 2023
58bc9f4
Added solution for 03
mzhou356 Mar 30, 2023
f419e0d
Added solution for 04
mzhou356 Mar 30, 2023
aa55f2f
Added solution for 05
mzhou356 Mar 30, 2023
a4d117e
Added solution for 06
mzhou356 Mar 30, 2023
3563ebf
Added solution for 07
mzhou356 Mar 30, 2023
424f190
Added solution for 08
mzhou356 Mar 30, 2023
57a2105
Added solution for 09
mzhou356 Mar 30, 2023
db3e739
Added solution for 10
mzhou356 Mar 30, 2023
50e9f22
Added solutions for type-conversion.
mzhou356 Mar 30, 2023
332bdd8
Added solution for command line args.
mzhou356 Mar 30, 2023
08dc565
updated change in 06 of command line args.
mzhou356 Mar 30, 2023
00576d0
corrected conversion answer
mzhou356 Mar 30, 2023
b080927
Added exercises for strings.
mzhou356 Mar 31, 2023
04a501c
Added iota exercises.
mzhou356 Mar 31, 2023
53d20c5
Added exercises for printf.
mzhou356 Apr 1, 2023
9722bf1
Added solutions for parts of if statements.
mzhou356 Apr 2, 2023
3374618
Added solution for challenge
mzhou356 Apr 3, 2023
8eb871c
Added solution for 05-moving-rating.
mzhou356 Apr 4, 2023
eb23097
added solution for 01-richter-scale
mzhou356 Apr 11, 2023
579deed
Added solution for exercises for switch.
mzhou356 Apr 12, 2023
e2e1831
Added exercises for multiplication table
mzhou356 Apr 13, 2023
1d0520b
Added parts of solutions to exercises for for-loops.
mzhou356 Apr 14, 2023
bfded81
Added exercises for randomization game.
mzhou356 Apr 18, 2023
615c5d1
Added soluiton for labelled statement.
mzhou356 May 1, 2023
6be8b7c
completed moodly challenge.
mzhou356 May 2, 2023
9015a9c
Added solutions for exercise 1 to 7
mzhou356 May 7, 2023
58b0012
completed all exercises for arrays.
mzhou356 May 22, 2023
cc24975
Completed animating clock challenge.
mzhou356 May 22, 2023
966118d
Added simple follow up questions.
mzhou356 May 22, 2023
9977c9a
added exercise solution for go slices.
mzhou356 May 23, 2023
f8cdf56
added exercises for slices.
mzhou356 May 25, 2023
7f7a44c
Added slicing exericses for go.
mzhou356 May 26, 2023
543eefa
Added exercises for slice internals.
mzhou356 May 27, 2023
a4f0964
Added parts of the exercise solutions for advanced slice operation.
mzhou356 May 27, 2023
4887518
completed exercises for advanced slice ops exericses.
mzhou356 May 28, 2023
22e3661
rewrite solution from io utils to os.
mzhou356 May 28, 2023
c1639cf
updated the solution from io/utils to os.
mzhou356 May 28, 2023
0f3046a
changed from util/io -> os and added log.fatal.
mzhou356 May 28, 2023
d5e9090
added solution for sort a file.
mzhou356 May 28, 2023
dcda87e
Added solution for sort a file with ordinal.
mzhou356 May 28, 2023
aee6462
Added solution for print directories.
mzhou356 May 28, 2023
b624780
Added exercises for bouncing ball.
mzhou356 May 29, 2023
27e981c
Added exercises for go runes/string/bytes.
mzhou356 Jun 6, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions 06-variables/04-assignment/exercises/01-make-it-blue/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Make It Blue
//
Expand All @@ -20,11 +22,9 @@ package main
// ---------------------------------------------------------

func main() {
// UNCOMMENT THE CODE BELOW:

// color := "green"

// ADD YOUR CODE BELOW:
color := "green"

// ?
color = "blue"
fmt.Println(color)
}
14 changes: 5 additions & 9 deletions 06-variables/04-assignment/exercises/02-vars-to-vars/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Variables To Variables
//
Expand Down Expand Up @@ -36,15 +38,9 @@ package main
// ---------------------------------------------------------

func main() {
// UNCOMMENT THE CODE BELOW:

// color := "green"

// ADD YOUR CODE BELOW

// ?
color := "green"

// UNCOMMENT THE CODE BELOW TO PRINT THE VARIABLE
color = "dark " + color

// fmt.Println(color)
fmt.Println(color)
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func main() {

// ADD YOUR CODE BELOW

// ?
n = 3.14 * 2

fmt.Println(n)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Find the Rectangle's Perimeter
//
Expand All @@ -33,12 +35,15 @@ package main
func main() {
// UNCOMMENT THE CODE BELOW:

// var (
// perimeter int
// width, height = 5, 6
// )
var (
perimeter int
width, height = 5, 6
)

// USE THE VARIABLES ABOVE WHEN CALCULATING YOUR RESULT

perimeter = (width + height) * 2

// ADD YOUR CODE BELOW
fmt.Println(perimeter)
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func main() {
version int
)

// ADD YOUR CODE BELOW
lang, version = "go", 2

// DO NOT TOUCH THIS
fmt.Println(lang, "version", version)
Expand Down
17 changes: 12 additions & 5 deletions 06-variables/04-assignment/exercises/06-multi-assign-2/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Multi Assign #2
//
Expand All @@ -28,11 +30,16 @@ package main
func main() {
// UNCOMMENT THE CODE BELOW:

// var (
// planet string
// isTrue bool
// temp float64
// )
var (
planet string
isTrue bool
temp float64
)

// ADD YOUR CODE BELOW
planet, isTrue, temp = "Mars", true, 19.5

fmt.Println("Air is good on", planet)
fmt.Println("It's", isTrue)
fmt.Println("It is", temp, "degrees")
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Multi Short Func
//
Expand All @@ -29,11 +31,11 @@ package main

func main() {
// ADD YOUR DECLARATIONS HERE
//
_, b := multi()

// THEN UNCOMMENT THE CODE BELOW

// fmt.Println(b)
fmt.Println(b)
}

// multi is a function that returns multiple int values
Expand Down
8 changes: 6 additions & 2 deletions 06-variables/04-assignment/exercises/08-swapper/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Swapper
//
Expand All @@ -25,7 +27,9 @@ package main
func main() {
// UNCOMMENT THE CODE BELOW:

// color, color2 := "red", "blue"
color, color2 := "red", "blue"

color, color2 = "orange", "green"

// ?
fmt.Println(color, color2)
}
7 changes: 5 additions & 2 deletions 06-variables/04-assignment/exercises/09-swapper-2/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Swapper #2
//
Expand All @@ -22,6 +24,7 @@ package main
func main() {
// UNCOMMENT THE CODE BELOW:

// red, blue := "red", "blue"
// ?
red, blue := "red", "blue"
red, blue = blue, red
fmt.Println(red, blue)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@

package main

import (
"fmt"
"path"
)

// ---------------------------------------------------------
// EXERCISE: Discard The File
//
Expand All @@ -25,5 +30,7 @@ package main
func main() {
// UNCOMMENT THE CODE BELOW:

// ? ?= path.Split("secret/file.txt")
dir, _ := path.Split("secret/file.txt")

fmt.Println(dir)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Convert and Fix
//
Expand All @@ -18,6 +20,6 @@ package main
// ---------------------------------------------------------

func main() {
// a, b := 10, 5.5
// fmt.Println(a + b)
a, b := 10, 5.5
fmt.Println(float64(a) + b)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Convert and Fix #2
//
Expand All @@ -18,7 +20,7 @@ package main
// ---------------------------------------------------------

func main() {
// a, b := 10, 5.5
// a = b
// fmt.Println(a + b)
a, b := 10, 5.5
a = int(b)
fmt.Println(float64(a) + b)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Convert and Fix #3
//
Expand All @@ -18,5 +20,5 @@ package main
// ---------------------------------------------------------

func main() {
// fmt.Println(int(5.5))
fmt.Println(5.5)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package main

import "fmt"

// ---------------------------------------------------------
// EXERCISE: Convert and Fix #4
//
Expand All @@ -18,6 +20,6 @@ package main
// ---------------------------------------------------------

func main() {
// age := 2
// fmt.Println(int(7.5) + int(age))
age := 2
fmt.Println(7.5 + float64(age))
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ func main() {
max := int16(1000)

// FIX THE CODE HERE
fmt.Println(int8(max) + min)
fmt.Println(max + int16(min))
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@

package main

import (
"fmt"
"os"
)

// ---------------------------------------------------------
// EXERCISE: Count the Arguments
//
Expand All @@ -22,8 +27,8 @@ package main

func main() {
// UNCOMMENT & FIX THIS CODE
// count := ?
count := len(os.Args) - 1

// UNCOMMENT IT & THEN DO NOT TOUCH THIS CODE
// fmt.Printf("There are %d names.\n", count)
fmt.Printf("There are %d names.\n", count)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@

package main

import (
"fmt"
"os"
)

// ---------------------------------------------------------
// EXERCISE: Print the Path
//
Expand All @@ -23,4 +28,5 @@ package main
// ---------------------------------------------------------

func main() {
fmt.Println(os.Args[0])
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@

package main

import (
"fmt"
"os"
)

// ---------------------------------------------------------
// EXERCISE: Print Your Name
//
Expand All @@ -32,6 +37,6 @@ package main
// ---------------------------------------------------------

func main() {
// get your name from the command-line
// and print it
fmt.Println("Hi", os.Args[1])
fmt.Println("How are you?")
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@

package main

import (
"fmt"
"os"
)

// ---------------------------------------------------------
// EXERCISE: Greet More People
//
Expand All @@ -28,9 +33,15 @@ package main
// ---------------------------------------------------------

func main() {
// TYPE YOUR CODE HERE

// BONUS #1:
// Observe the error if you pass less then 3 arguments.
// Search on the web how to solve that.
var (
l = len(os.Args) - 1
n1 = os.Args[1]
n2 = os.Args[2]
n3 = os.Args[3]
)
fmt.Println("There are", l, "people!")
fmt.Println("Hello great", n1)
fmt.Println("Hello great", n2)
fmt.Println("Hello great", n3)
fmt.Print("Nice to meet you all.")
}
Loading