Initial commit

This commit is contained in:
Inanc Gumus
2018-10-13 23:30:21 +03:00
commit cde4e6632c
567 changed files with 17896 additions and 0 deletions

View File

@ -0,0 +1,22 @@
// For more tutorials: https://blog.learngoprogramming.com
//
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
package main
import (
"fmt"
"strconv"
)
func main() {
// Itoa doesn't return any errors
// So, you don't have to handle the errors for it
s := strconv.Itoa(42)
fmt.Println(s)
}

View File

@ -0,0 +1,24 @@
// For more tutorials: https://blog.learngoprogramming.com
//
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
package main
import (
"fmt"
"os"
"strconv"
)
func main() {
// Atoi returns an error value
// So, you should always check it
n, err := strconv.Atoi(os.Args[1])
fmt.Println("Converted number :", n)
fmt.Println("Returned error value:", err)
}

View File

@ -0,0 +1,44 @@
// For more tutorials: https://blog.learngoprogramming.com
//
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
package main
import (
"fmt"
"os"
"strconv"
)
func main() {
age := os.Args[1]
// Atoi returns an int and an error value
// So, you need to handle the errors
n, err := strconv.Atoi(age)
// handle the error immediately and quit
// don't do anything else here
if err != nil {
fmt.Println("ERROR:", err)
// quits/returns from the main function
// so, the program ends
return
}
// DO NOT DO THIS:
// else {
// happy path
// }
// DO THIS:
// happy path (err is nil)
fmt.Printf("SUCCESS: Converted %q to %d.\n", age, n)
}

View File

@ -0,0 +1,52 @@
// For more tutorials: https://blog.learngoprogramming.com
//
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
package main
import (
"fmt"
"os"
"strconv"
"strings"
)
// ---------------------------------------------------------
// CHALLENGE
// Add error handling to the feet to meters program.
//
// EXPECTED OUTPUT
// go run main.go hello
// error: 'hello' is not a number.
//
// go run main.go what
// error: 'what' is not a number.
//
// go run main.go 100
// 100 feet is 30.48 meters.
// ---------------------------------------------------------
const usage = `
Feet to Meters
--------------
This program converts feet into meters.
Usage:
feet [feetsToConvert]`
func main() {
if len(os.Args) < 2 {
fmt.Println(strings.TrimSpace(usage))
return
}
arg := os.Args[1]
feet, _ := strconv.ParseFloat(arg, 64)
meters := feet * 0.3048
fmt.Printf("%g feet is %g meters.\n", feet, meters)
}

View File

@ -0,0 +1,42 @@
// For more tutorials: https://blog.learngoprogramming.com
//
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
package main
import (
"fmt"
"os"
"strconv"
"strings"
)
const usage = `
Feet to Meters
--------------
This program converts feet into meters.
Usage:
feet [feetsToConvert]`
func main() {
if len(os.Args) < 2 {
fmt.Println(strings.TrimSpace(usage))
return
}
arg := os.Args[1]
feet, err := strconv.ParseFloat(arg, 64)
if err != nil {
fmt.Printf("error: '%s' is not a number.\n", arg)
return
}
meters := feet * 0.3048
fmt.Printf("%g feet is %g meters.\n", feet, meters)
}