diff options
author | Andinus <andinus@nand.sh> | 2021-08-11 15:26:15 +0530 |
---|---|---|
committer | Andinus <andinus@nand.sh> | 2021-08-11 15:26:15 +0530 |
commit | 321825828ac918bad28d0597a8616c6dc9802c3c (patch) | |
tree | 0b8e9cb1012197750eb58e972736319b2a6abac2 /go/hello-world | |
parent | 2979ef790ac5b8f58495e0dd08cafd6a3a2e30a5 (diff) | |
download | exercism-321825828ac918bad28d0597a8616c6dc9802c3c.tar.gz |
Add solved exercises
Diffstat (limited to 'go/hello-world')
-rw-r--r-- | go/hello-world/README.md | 44 | ||||
-rw-r--r-- | go/hello-world/go.mod | 3 | ||||
-rw-r--r-- | go/hello-world/hello_world.go | 7 | ||||
-rw-r--r-- | go/hello-world/hello_world_test.go | 37 |
4 files changed, 91 insertions, 0 deletions
diff --git a/go/hello-world/README.md b/go/hello-world/README.md new file mode 100644 index 0000000..13dd5c8 --- /dev/null +++ b/go/hello-world/README.md @@ -0,0 +1,44 @@ +# 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. + +## Coding the solution + +Look for a stub file having the name hello_world.go +and place your solution code in that file. + +## 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. diff --git a/go/hello-world/go.mod b/go/hello-world/go.mod new file mode 100644 index 0000000..5bfa5f6 --- /dev/null +++ b/go/hello-world/go.mod @@ -0,0 +1,3 @@ +module greeting + +go 1.13 diff --git a/go/hello-world/hello_world.go b/go/hello-world/hello_world.go new file mode 100644 index 0000000..781e41f --- /dev/null +++ b/go/hello-world/hello_world.go @@ -0,0 +1,7 @@ +// Implements HelloWorld. +package greeting + +// HelloWorld returns "Hello, World!". +func HelloWorld() string { + return "Hello, World!" +} diff --git a/go/hello-world/hello_world_test.go b/go/hello-world/hello_world_test.go new file mode 100644 index 0000000..bf6cb90 --- /dev/null +++ b/go/hello-world/hello_world_test.go @@ -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() + } +} |