别名foo bar和Just foo = bar之间的区别

Пав*_*дов 4 ruby

在使用rubylearning教程学习ruby时,我不得不“使用别名”部分。我不明白使用别名之间的区别是什么,例如:

def oldmtd  
  "old method"  
end  
alias newmtd oldmtd  
def oldmtd  
  "old improved method"  
end  
puts oldmtd  
puts newmtd
Run Code Online (Sandbox Code Playgroud)

带输出

old improved method
old method
Run Code Online (Sandbox Code Playgroud)

并为此函数分配一个新变量,例如:

def oldmtd  
  "old method"  
end  
newmtd = oldmtd  
def oldmtd  
  "old improved method"  
end  
puts oldmtd  
puts newmtd
Run Code Online (Sandbox Code Playgroud)

具有相同的输出:

old improved method
old method
Run Code Online (Sandbox Code Playgroud)

请告诉我实际区别是什么,何时使用“别名”是正确的?

ste*_*lag 7

随着newmtd = oldmtd你是不是分配给一个功能一个新的变量; 您正在将变量分配给函数的结果,即字符串。用Python术语:newmtd = oldmtd()