가 def greet; puts "hello"; end
루비에 한 줄에하는 방법을 정의 할 수있는 유일한 방법은?
답변
괄호를 사용하면 세미콜론을 사용할 필요가 없습니다.
def hello() :hello end
답변
완전히 새로운 답변을 제공하십시오.
일반적으로 한 줄 방법은 피하십시오. 비록 그들이 야생에서 다소 인기가 있지만, 그들의 사용을 바람직하지 않게 만드는 정의 구문에 대한 몇 가지 특징이 있습니다. 여하튼- 한 줄 메서드에는 표현식이 하나만 있어야합니다
.
# bad
def too_much; something; something_else; end
# okish - notice that the first ; is required
def no_braces_method; body end
# okish - notice that the second ; is optional
def no_braces_method; body; end
# okish - valid syntax, but no ; make it kind of hard to read
def some_method() body end
# good
def some_method
body
end
규칙에 대한 한 가지 예외는 빈 본문 메서드입니다.
# good
def no_op; end
답변
def add a,b; a+b end
세미콜론은 Ruby의 인라인 문 종결 자입니다.
또는 define_method
방법을 사용할 수 있습니다 . (편집 : 이것은 루비 1.9에서 더 이상 사용되지 않습니다)
define_method(:add) {|a,b| a+b }
답변
또 다른 방법:
define_method(:greet) { puts 'hello' }
메서드를 정의하는 동안 새 범위를 입력하지 않으려는 경우 사용할 수 있습니다.
답변
또 다른 방법 :
def greet() return 'Hello' end