ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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)


    댓글