Go - responding to requests - Web Apps - First-class functions
Head First Go、 Jay McGavren(著)、O’Reilly Media)の Chapter 15(responding to requests - Web Apps)、p.439(Pool Puzzle)の解答を求めてみる。
コード
main.go
package main
import "fmt"
func callFunction(passedFunction func()) {
passedFunction()
}
func callTwice(passedFunction func()) {
passedFunction()
passedFunction()
}
func callWithArguments(passedFunction func(string, bool)) {
passedFunction("This sentence is", false)
}
func printReturnValue(passedFunction func() string) {
fmt.Println(passedFunction())
}
func functionA() {
fmt.Println("function called")
}
func functionB() string {
fmt.Println("function called")
return "Returning from function"
}
func functionC(a string, b bool) {
fmt.Println("function called")
fmt.Println(a, b)
}
func main() {
callFunction(functionA)
callTwice(functionA)
callWithArguments(functionC)
printReturnValue(functionB)
}
入出力結果(Terminal, Zsh)
% go run ./main.go
function called
function called
function called
function called
This sentence is false
function called
Returning from function
%