17
I 재사용 할 수있는 변수에 "코드 블록"을 저장할
, 뭔가를 저장? (또는 그냥 불가능 경우)어떻게 루비 코드 블록
, 뭔가를 저장? (또는 그냥 불가능 경우)어떻게 루비 코드 블록
발동 사용하는 것 중 하나는 루비에서이 작업을 수행하는 방법에는 여러 가지가 있습니다 :
foo=Proc.new do |test|
puts test
end
3.upto(8) { foo.call("hello world") }
프로세서 수에 대해 자세히 알아보기 :
업데이트, 위의 방법을 다시 작성할 수 있습니다
# using lower-case **proc** syntax, all on one line
foo = proc { |test| puts test }
3.upto(8) { foo.call("hello world") }
# using lambda, just switch the method name from proc to lambda
bar = lambda { |test| puts test }
3.upto(8) { bar.call("hello world") }
이들은 기본적으로 매우 유사한 방법으로 미묘한 차이가 있습니다.
마지막으로, 제가 설명했던 것을 할 수있는보다 우아한 방법이 있습니다. 더 좋은 방법을 가진 사람의 의견을 듣는 것이 좋습니다. 희망이 도움이됩니다.
고마워요. 링크를 위해. lambdas에 대한 언급도 포함시킬만큼 친절 할 수 있습니까? 역사적인 목적을 위해. –
@Shingetsu, 나는 람다를 추가하고 업데이트했다. proc 접근 방식도 약간 단순화 된 버전이다. – stephenmurdoch
@Shingetsu : Lambda는 역사적이지 않다. Procs 대신 거의 항상 * 사용해야합니다. 그들은 훨씬 더 완전하게 특색 지어지고 표준이다. – Linuxios