我是一名PHP程序員。剛開始學習Ruby。我對ruby的私人聲明感到困惑。如何在ruby中定義私有方法?
可以說我有這樣的
private
def greeting
random_response :greeting
end
def farewell
radnom_response :farewell
end
代碼不公開的,只有適用於問候或兩者的問候和告別?
我是一名PHP程序員。剛開始學習Ruby。我對ruby的私人聲明感到困惑。如何在ruby中定義私有方法?
可以說我有這樣的
private
def greeting
random_response :greeting
end
def farewell
radnom_response :farewell
end
代碼不公開的,只有適用於問候或兩者的問候和告別?
這是相當標準的將私有/受保護的方法放在文件的底部。 private
之後的所有內容都將成爲私人方法。
class MyClass
def a_public_method
end
private
def a_private_method
end
def another_private_method
end
protected
def a_protected_method
end
public
def another_public_method
end
end
正如你可以看到在這個例子中,如果你真的需要你可以通過使用關鍵字public
回去聲明公有方法。
它也可以更容易地看到通過縮進您的私人/公共方法的另一個級別範圍的變化,看到在視覺上,他們分組下private
節等
您也可以選擇只申報一次性的私有方法是這樣的:
class MyClass
def a_public_method
end
def a_private_method
end
def another_private_method
end
private :a_private_method, :another_private_method
end
使用private
模塊的方法來只申報單的方法是私有的,但坦率地說,除非你總是每個方法聲明之後做它可以是一個有點混亂,這種方式找到私有方法。我只是喜歡把它們粘在底部:)
它適用於一切在private
即greeting
和farewell
爲了使其中一方的私有可以使greeting
單獨的私人如下:
def greeting
random_response :greeting
end
private :greeting
def farewell
radnom_response :farewell
end
文檔可以在Module#private
在Ruby 2.1中定義的方法返回它們的名字,所以你可以調用private
來傳遞函數定義的類。您也可以將方法名稱傳遞給private
。任何在沒有任何參數的情況下定義的private
將是一種私人方法。
這給你留下聲明私有方法的三種不同的方法:
class MyClass
def public_method
end
private def private_method
end
def other_private_method
end
private :other_private_method
private
def third_private_method
end
end
它適用於這兩種方法.... – gabrielhilal