1.
class diffself
public
def method1
puts "call method1"
enddef method2
puts "call method2"
self.method1
enddef method3
puts "call method3"
method1
endend
t=diffself.new
t.method2
#call method2
#call method1
t.method3
#call method3
#call method1
2.class diffself
private
def method1
puts "call method1"
endpublic
def method2
puts "call method2"
self.method1
enddef method3
puts "call method3"
method1
endend
t=diffself.new
t.method2
#call method2
#private method error
t.method3
#call method3
#call method1
3.
class diffself1
private
def puts(str)
"private method :#"
endpublic
def call_puts_with_self(str)
self.puts str
enddef call_puts_without_self(str)
puts str
endend
t=diffself.new
t.call_puts_without_self("hello,world!") #hello ,world!
t.call_puts_with_self("hello,world!")#private method error
結論:1.ruby的私有方法只能被隱式self呼叫,而public和protected 方法可以被顯式self和隱式self呼叫,隱式self更具靈活性。
2.隱式self如果遇到沒有的方法會按照類的類繼承和mixin的優先順序查詢直到,而顯式self不會。
mysql顯式和隱式效率 顯式與隱式SQL連線
顯式和隱式內部聯接是否存在效率差異?例如 select from table a inner join table b on a.id b.id 與select a.b.from table a,table b where a.id b.id 在mysql 5.1.51上,兩個查詢的執行計畫相同 m...
Self和self的區別
所有的trait都定義了乙個隱式的型別self,它指當前實現此介面的型別。rust官方文件當self用作函式的第乙個引數時,它等價於self self。self引數等價於self self。mut self引數等價於self mut self。方法引數中的self是一種語法糖,是方法的接收型別 例如...
顯式Intent和隱式Intent
size medium size medium 2011 09 12 09 35 顯式intent和隱式intent區別 android當中顯式intent和隱式intent的區別 定義 intent定義 intent是一種在不同元件之間傳遞的請求訊息,是應用程式發出的請求和意圖。作為乙個完整的訊息...