말은 어렵지만 의미는 간단합니다. 함수를 파라미터 또는 인자값에 넣는 것입니다. 아래는 고계함수의 예제입니다.

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)


+ Random Posts