![\newcommand{\foo}{foo} 和 \newcommand{\foo}[0]{foo} 之間有什麼不同嗎?](https://rvso.com/image/348084/%5Cnewcommand%7B%5Cfoo%7D%7Bfoo%7D%20%E5%92%8C%20%5Cnewcommand%7B%5Cfoo%7D%5B0%5D%7Bfoo%7D%20%E4%B9%8B%E9%96%93%E6%9C%89%E4%BB%80%E9%BA%BC%E4%B8%8D%E5%90%8C%E5%97%8E%EF%BC%9F.png)
我有一位合著者,他將許多巨集定義為 例如\newcommand{\foo}[0]{foo}
,明確給出參數數量,即使它為零,我以前總是使用和看到\newcommand{\foo}{foo}
沒有參數的巨集。
這兩個版本之間是否存在任何可能的行為差異,或者有任何超出可讀性的原因而選擇其中一個而不是另一個?
答案1
沒有區別,實際上[0]
是可選參數的預設值,因此在第一次掃描可選參數之後,它們遵循相同的程式碼路徑。
我有一位合著者,他將許多巨集定義為 例如\newcommand{\foo}[0]{foo}
,明確給出參數數量,即使它為零,我以前總是使用和看到\newcommand{\foo}{foo}
沒有參數的巨集。
這兩個版本之間是否存在任何可能的行為差異,或者有任何超出可讀性的原因而選擇其中一個而不是另一個?
沒有區別,實際上[0]
是可選參數的預設值,因此在第一次掃描可選參數之後,它們遵循相同的程式碼路徑。