>백엔드 개발 >Golang >계산기용 Go 패키지의 메서드를 동적으로 반복하려면 어떻게 해야 합니까?

계산기용 Go 패키지의 메서드를 동적으로 반복하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-16 20:38:03259검색

How can I dynamically iterate through methods in a Go package for a calculator?

동적으로 패키지 반복

문제:

Go 프로그래머 Python은 확장 가능한 기능(덧셈, 뺄셈 등)을 갖춘 간단한 계산기를 만드는 동안 장황한 내용을 접하게 됩니다. 그들은 코드를 단순화하고 기능을 쉽게 추가하기 위해 계산기 패키지의 모든 메서드를 동적으로 반복하는 방법을 모색합니다.

응답:

Go는 간단한 메커니즘을 제공하지 않습니다. 패키지를 검사하거나 해당 내용을 동적으로 반복합니다. 컴파일러는 직접 참조되는 실행 파일의 함수와 변수만 포함합니다. 호출되지 않는 함수는 생략됩니다.

대체 솔루션:

패키지를 동적으로 반복하는 대신 원하는 유형의 객체가 포함된 배열을 생성하는 것을 고려할 수 있습니다. 작동합니다. 이를 통해 사전 정의된 계산기 작업 세트를 반복할 수 있습니다.

type Calc interface {
    First(x int) int
    Second(x int) int
}

calculator := []Calc{
    &calculator.Add{},
    &calculator.Sub{},
    &calculator.Mul{},
    &calculator.Div{},
}

for _, calc := range calculator {
    x := 10
    fmt.Println(calc.First(x))
    fmt.Println(calc.Second(x))
}

배열을 사용하면 패키지를 동적으로 검사할 필요 없이 특정 계산기 메서드를 통해 반복할 수 있습니다. 메소드가 실행되는 순서도 미리 정의되어 있습니다.

위 내용은 계산기용 Go 패키지의 메서드를 동적으로 반복하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.