lambda - Ruby中如何避免使用case...when
天蓬老师
天蓬老师 2017-04-22 08:56:14
0
1
882

例如,我有如下代码:

case opt
when "opt1"
  method1(param1, param2)
when "opt2"
  method2(param1, param2, param3)
end

请教有没有好方法避免使用case...when,这里每个when里面调用的处理方法传的参数也是不一样的。动态方法调用?用block是否可行?
用动态方法调用,方法名和参数列表提前配置在一个hash中可以达到要求。不知道用block/lambda/proc之类的能否做到?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(1)
巴扎黑

그렇습니다.
자세한 내용은 Ruby Metaprogramming 책을 읽어보세요. 추상화하는 방법을 알려줄 것입니다.

으아아아

여기서는 세 가지 범위 daily_report Monthly_report Weekly_report를 정의했습니다
위의 코드는 세 가지 함수의 이름을 동적으로 생성한 다음 해당 함수에 매개변수를 전달합니다.

으아아아

여기에는 다양한 매개변수가 제공될 수 있습니다. 첫 번째 매개변수는 메소드 이름이고, 다음 매개변수는 메소드에 필요한 모든 매개변수입니다.
그런 다음 기능이 동일한 경우 opt를 기반으로 특정 기능을 생성할 수 있습니다. 매개변수에는 선택적 매개변수를 사용하세요.
Ruby는 원하는 수의 매개변수를 허용합니다. 매개변수 앞에 * 기호를 추가해야 합니다. 메소드 코드에서 이 매개변수는 이 위치에 전달되는 0개 이상의 매개변수를 포함하는 배열로 표시됩니다.

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!