Initial commit
This commit is contained in:
22
11-if/03-error-handling/01-itoa/main.go
Normal file
22
11-if/03-error-handling/01-itoa/main.go
Normal 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)
|
||||
}
|
24
11-if/03-error-handling/02-atoi/main.go
Normal file
24
11-if/03-error-handling/02-atoi/main.go
Normal 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)
|
||||
}
|
44
11-if/03-error-handling/03-atoi-error-handling/main.go
Normal file
44
11-if/03-error-handling/03-atoi-error-handling/main.go
Normal 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)
|
||||
}
|
@ -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)
|
||||
}
|
@ -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)
|
||||
}
|
Reference in New Issue
Block a user