![\newcommand{\foo}{foo} と \newcommand{\foo}[0]{foo} には違いがありますか?](https://rvso.com/image/348084/%5Cnewcommand%7B%5Cfoo%7D%7Bfoo%7D%20%E3%81%A8%20%5Cnewcommand%7B%5Cfoo%7D%5B0%5D%7Bfoo%7D%20%E3%81%AB%E3%81%AF%E9%81%95%E3%81%84%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
私の共著者の 1 人は、たとえば\newcommand{\foo}[0]{foo}
、引数の数が 0 の場合でも引数の数を明示的に指定して多くのマクロを定義していますが、私はこれまで常に\newcommand{\foo}{foo}
引数のないマクロを使用してきました。
2 つのバージョン間で動作に違いがある可能性はありますか? または、読みやすさ以外に、どちらか一方を優先する理由はありますか?
答え1
違いはありません。実際、[0]
はオプション引数のデフォルト値なので、オプション引数の最初のスキャンの後は同一のコード パスに従います。