Kohei
Posted on September 4, 2018
This article was originally published on GitHub.
Setup
$ go get golang.org/x/tools/cmd/goimports
...
$ mkdir go-handson
$ cd go-handson
Hello World
$ touch hello.go
// hello.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
}
$ $GOPATH/bin/goimports -w .
# Format and add packages that should be imported
$ go run hello.go
Hello World!
$ go build -o hello .
$ ./hello
Hello World!
flag
package
Usage of flag.StringVar
$ touch flag.go
// flag.go
package main
import (
"flag"
"fmt"
)
func main() {
var name string
flag.StringVar(&name, "opt", "", "Usage")
flag.Parse()
fmt.Println(name)
}
$ go run hello.go -opt option
option
If you want to know more about the flag
package, please go to the https://golang.org/pkg/flag/
Exercise 1-1
Create a CLI application which outputs Hello World!
if no options are specified. And if a string option is specified as -name
, it has to output Hello [YOUR_NAME]!
$ go run hello.go
Hello World!
$ go run hello.go -name Gopher
Hello Gopher!
The answer is hello.go
os
package
Usage of os.Args
$ touch args.go
// args.go
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Args)
fmt.Println(os.Args[1])
}
$ go build -o args args.go
$ ./args Gopher
[./args Gopher]
Gopher
File I/O
Reading files
file, err := os.Open(`/path/to/file`)
if err != nil {
panic(err)
}
defer file.Close()
buf := make([]byte, BUFSIZE)
for {
n, err := file.Read(buf)
if n == 0 {
break
}
if err != nil {
panic(err)
}
fmt.Print(string(buf[:n]))
}
Writing files
f, err := os.Create("/path/to/file")
if err != nil {
panic(err)
}
defer f.Close()
b := []byte("Foo")
n, err := f.Write(b)
if err != nil {
panic(err)
}
fmt.Println(n)
Exercise 1-2
Create an application file.go
which creates a file and write a string Hello Writing to Files!
to it. And the file name has to be specified as a command line argument.
$ go run file.go file.txt
The number of bytes written: 23
$ cat file.txt
Hello Writing to Files!
The answer is file.go
💖 💪 🙅 🚩
Kohei
Posted on September 4, 2018
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
google Tough Task? Discover How Google’s AI Can Help You Understand Your Algorithm and Codes Faster.
November 10, 2024