alias和alias method的區別

2022-08-17 23:57:17 字數 1273 閱讀 8959

1、alias 是 ruby 的乙個關鍵字,因此使用的時候是 alias :new name :oldname,而alias_method 是 module 類的乙個方法,因此使用的時候是 alias_method(:newname, :oldname)有乙個逗號

2、alias_method 可以重定義,alias 不能。

3。方法呼叫時的引數不同,alias_method要求引數是字串或者符號變數,alias使用變數名或者符合變數,

4. 作用域不同

前面有強調在頂級作用域main中,只能通過alias進行別名定義,而不能使用alias_mehtod是因為在main中調不到module#alias_method方法,而alias是關鍵字的緣故,所以能正常在main中使用。

⚠️:通過alias定義方法別名,其變數self的內容是固定不變的,即self所代表的是呼叫的物件,而alias_method方法中的self卻是在執行時確定的,看下面**:

alias例項**

class user

def full_name

puts "johnnie walker"

enddef self.add_rename

alias :name :full_name

endendclass developer < user

def full_name

puts "geeky geek"

endadd_rename #執行類方法,但alias是關鍵字,在定義時,已經繫結了self為user

enddeveloper.new.name #=> 'johnnie walker'

alias_method示例**

class user

def full_name

puts "johnnie walker"

enddef self.add_rename

alias_method :name, :full_name

endendclass developer < user

def full_name

puts "geeky geek"

endadd_rename #執行類方法。self是developer。

enddeveloper.new.name #=> 'gekky geek'

alias別名簡介和使用

在 linux 環境下工作的工程師,一定會對那些繁瑣的指令和引數命令列印象深刻吧。而且,可怕的不是繁瑣,而是需要大量重複輸入這些繁瑣的命令。在 linux 下我們有個別名命令 alias 可以將那些繁瑣的命令自定義為我們容易記住的別名,可以大大提高我們的效率。但是,alias 命令只對當前終端有效,...

Linux的alias和source命令

什麼是shell 使用者直接面對的不是計算機硬體而是shell,使用者把指令告訴shell 五官 然後shell再傳輸給系統核心,接著核心再去支配計算機硬體去執行各種操作。bash bource again shell,bource寫的加強版shell。是shell的一種。alias命令 用來給命令...

Nginx之alias和root指令

1 alias指定的目錄是準確的,即location匹配訪問的path目錄下的檔案直接是在alias目錄下查詢的 2 root指定的目錄是location匹配訪問的path目錄的上一級目錄,這個path目錄一定要是真實存在root指定目錄下的 3 使用alias標籤的目錄塊中不能使用rewrite的...