Add go/hello-world
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
# Hello World
|
||||||
|
|
||||||
|
The classical introductory exercise. Just say "Hello, World!".
|
||||||
|
|
||||||
|
["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is
|
||||||
|
the traditional first program for beginning programming in a new language
|
||||||
|
or environment.
|
||||||
|
|
||||||
|
The objectives are simple:
|
||||||
|
|
||||||
|
- Write a function that returns the string "Hello, World!".
|
||||||
|
- Run the test suite and make sure that it succeeds.
|
||||||
|
- Submit your solution and check it at the website.
|
||||||
|
|
||||||
|
If everything goes well, you will be ready to fetch your first real exercise.
|
||||||
|
|
||||||
|
## Running the tests
|
||||||
|
|
||||||
|
To run the tests run the command `go test` from within the exercise directory.
|
||||||
|
|
||||||
|
If the test suite contains benchmarks, you can run these with the `--bench` and `--benchmem`
|
||||||
|
flags:
|
||||||
|
|
||||||
|
go test -v --bench . --benchmem
|
||||||
|
|
||||||
|
Keep in mind that each reviewer will run benchmarks on a different machine, with
|
||||||
|
different specs, so the results from these benchmark tests may vary.
|
||||||
|
|
||||||
|
## Further information
|
||||||
|
|
||||||
|
For more detailed information about the Go track, including how to get help if
|
||||||
|
you're having trouble, please visit the exercism.io [Go language page](http://exercism.io/languages/go/resources).
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
|
||||||
|
|
||||||
|
## Submitting Incomplete Solutions
|
||||||
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package greeting
|
||||||
|
|
||||||
|
// HelloWorld returns the string "Hello, World!"
|
||||||
|
func HelloWorld() string {
|
||||||
|
return "Hello, World!"
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package greeting
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
// Define a function named HelloWorld that takes no arguments,
|
||||||
|
// and returns a string.
|
||||||
|
// In other words, define a function with the following signature:
|
||||||
|
// HelloWorld() string
|
||||||
|
|
||||||
|
func TestHelloWorld(t *testing.T) {
|
||||||
|
expected := "Hello, World!"
|
||||||
|
if observed := HelloWorld(); observed != expected {
|
||||||
|
t.Fatalf("HelloWorld() = %v, want %v", observed, expected)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// BenchmarkHelloWorld() is a benchmarking function. These functions follow the
|
||||||
|
// form `func BenchmarkXxx(*testing.B)` and can be used to test the performance
|
||||||
|
// of your implementation. They may not be present in every exercise, but when
|
||||||
|
// they are you can run them by including the `-bench` flag with the `go test`
|
||||||
|
// command, like so: `go test -v --bench . --benchmem`
|
||||||
|
//
|
||||||
|
// You will see output similar to the following:
|
||||||
|
//
|
||||||
|
// BenchmarkHelloWorld 2000000000 0.46 ns/op
|
||||||
|
//
|
||||||
|
// This means that the loop ran 2000000000 times at a speed of 0.46 ns per loop.
|
||||||
|
//
|
||||||
|
// While benchmarking can be useful to compare different iterations of the same
|
||||||
|
// exercise, keep in mind that others will run the same benchmarks on different
|
||||||
|
// machines, with different specs, so the results from these benchmark tests may
|
||||||
|
// vary.
|
||||||
|
func BenchmarkHelloWorld(b *testing.B) {
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
HelloWorld()
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user