Skip to content

Instantly share code, notes, and snippets.

@dz1984
Created March 23, 2014 08:56
Show Gist options
  • Save dz1984/9720535 to your computer and use it in GitHub Desktop.
Save dz1984/9720535 to your computer and use it in GitHub Desktop.
"A Tour of Go"
/*
Exercise: HTTP Handlers
Implement the following types and define ServeHTTP methods on them. Register them to handle specific paths in your web server.
type String string
type Struct struct {
Greeting string
Punct string
Who string
}
For example, you should be able to register handlers using:
http.Handle("/string", String("I'm a frayed knot."))
http.Handle("/struct", &Struct{"Hello", ":", "Gophers!"})
*/
package main
import (
"fmt"
"net/http"
)
type String string
func (s String) ServeHTTP(
w http.ResponseWriter,
r *http.Request) {
fmt.Fprint(w,s)
}
type Struct struct {
Greeting string
Punct string
Who string
}
func (s Struct) ServeHTTP(
w http.ResponseWriter,
r *http.Request) {
fmt.Fprint(w,"%s %s %s",s.Greeting,s.Punct,s.Who)
}
func main() {
http.Handle("/string",String("I'm a frayed knot."))
http.Handle("/struct",&Struct{"Hello",":","Gophers!"})
http.ListenAndServe("localhost:4000", nil)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment