-
[Golang] 고계(고차)함수 (higher-order function)언어/Golang 2017. 2. 8. 19:55
말은 어렵지만 의미는 간단합니다. 함수를 파라미터 또는 인자값에 넣는 것입니다. 아래는 고계함수의 예제입니다.
func ReadFrom(r io.reader, f func(line string)) error { scanner := bufio.NewScanner(r) for scanner.Scan() { f(scanner.Text()) } if err := scanner.Err(); err != nil { return err } return nil } func main() { r:= strings.NewReader("bill\ntom\njani\n") err := ReadFrom(r, func(line string) { // 람다함수와 같은 기능 fmt.Println("(", line, ")") }) if err != nil { fmt.Println(err) } } // 결과 // (bill) // (tom) // (jani)