2012-04-24 6 views
2

다트가 가변 함수/메소드의 개념을 지원합니까? 그래서 변수에 저장된 이름으로 메소드를 호출합니다.다트의 함수/메소드 할당

이이 방법에 대한뿐만 아니라 수행 할 수 있습니다 PHP에서 예를 들어

는 :

// With functions... 
function foo() 
{ 
    echo 'Running foo...'; 
} 

$function = 'foo'; 
$function(); 

// With classes... 
public static function factory($view) 
{ 
    $class = 'View_' . ucfirst($view); 
    return new $class(); 
} 

나는 언어 투어 또는 API에서 그것을 발견하지 않았다. 다른 사람들이 이런 식으로 할 수 있습니까?

미리 감사드립니다.

답변

6

함수의 이름을 변수에 저장하고 나중에 호출하려면 다트에 반영 (또는 get creativenoSuchMethod)이 도착할 때까지 기다려야합니다. 저장

main() { 
    g(int i) { 
     if(i > 0) { 
     print("$i is larger than zero"); 
     g(i-1); 
     } else { 
     print("zero or negative"); 
     } 
    } 
    g(10); 
} 

기능은 다음 주위에 전달 될 수 있습니다 : 당신은 recusion을 편리 심지어 자바 스크립트

main() { 
    var f = (String s) => print(s); 
    f("hello world"); 
} 

하고 인라인, 같은 변수에 직접 그러나 저장 기능 일을 할 수있는 경우 다른 기능에

main() { 
    var function; 
    function = (String s) => print(s); 
    doWork(function); 
} 

doWork(f(String s)) { 
    f("hello world"); 
} 
+0

고맙습니다. 내 문제를 해결하는 데 도움이 될 것 같아. 변수에 함수를 저장하는 Javascript 방식에 대해 생각하지 않았습니다 ... –

관련 문제