所以,通过这个简单的输入,
define(foo, len($1)) foo(abcdef)
我得到了,作为输出:
2
如何才能打印5
呢?我无法找出使len()
实际接收 $1
,abcdef
的值的引用的任何组合,而不是文字字符串{{ 1}}。
编辑1:有问题的实际代码如下所示:
`$1'
答案 0 :(得分:3)
len($1)
的引用不足会导致在定义步骤中立即进行评估,因此foo定义为2.
即。这相当于:
define(foo, 2) foo(abcdef)
完整引用时,结果符合您的预期:
define(`foo', `len($1)') foo(`abcdef')
> 6