這二個字,中文可翻成展開跟求值,有時我二者都翻成展開。
在zmud裡
expand是把variable或alias取代成實際的值
evaluate是把算式的值求出來
這二者在zmud裡常常會弄混,
下面雜七雜八的把常用到地方列出來。
實際在使用上,不用記住也沒問題,常用#say或#echo來除錯,把中間值印出來
當發現沒有如預期的expand或evaluate時,再用<>或[]的語法做強迫就可以了
假設@num的內容是10
對@num * @num做expand會得到 10 * 10
對@num * @num做evaluate會得到 100
強迫expand的語法是<>
強迫evaluate的語法是[]
(這二個可以在Prefs裡開關)
仍然假設@num的內容是10
在命令列打drop @num coin會送出drop @num coin到MUD (沒有自動expand)
要打drop <@num> coin才會送出drop 10 coin到MUD (強迫它expand)
#var varname {@num*@num} 或 varname = @num*@num
varname裡的內容會是10*10 (是expand)
要用#var varname [@num*@num] 或 varname = [@num*@num]
varname的內容才會是100 (本來只有expand,強迫它evaluate)
#var varname expression是expand
#math varname expression是evaluate
#show,#echo,#say是expand
#evaluate是evaluate
%eval(expression)是evaluate