計算機科学のブログ

Go - responding to requests - Web Apps - Browsers, servers, and responses

Head First GoJay McGavren(著)、O’Reilly Media)の Chapter 15(responding to requests - Web Apps)、p.434(Exercises)の解答を求めてみる。

コード

main.go

package main

import (
	"log"
	"net/http"
)

func write(writer http.ResponseWriter, message string) {
	_, err := writer.Write([]byte(message))
	if err != nil {
		log.Fatal(err)
	}
}
func d(writer http.ResponseWriter, request *http.Request) {
	write(writer, "z")
}
func e(writer http.ResponseWriter, request *http.Request) {
	write(writer, "x")
}
func f(writer http.ResponseWriter, request *http.Request) {
	write(writer, "y")
}
func main() {
	http.HandleFunc("/a", f)
	http.HandleFunc("/b", d)
	http.HandleFunc("/c", e)
	err := http.ListenAndServe("localhost:4567", nil)
	log.Fatal(err)
}

// x http://localhost:4567/c
// y http://localhost:4567/a
// z http://localhost:4567/b

入出力結果(Terminal, Zsh)

% go run ./main.go 
^Csignal: interrupt
%