我认为这段代码的输出应该是
Hello World 1
Hello World 2 3但我得到了
Hello World 1
Hello World 2 Hello World 3下面是jam代码
rule weird ( a : b + : c * : d ? )
{
echo "Hello World $(a)" ;
echo "Hello World $(b)" ;
}
weird 1 : 2 3 ;发布于 2012-06-25 11:47:15
Jam的变量扩展规则与其他语言非常不同。从boost jam documentation
变量展开后的token的结果是token的组件的乘积,其中每个组件都是文字子字符串或替换变量引用的列表。
因此jam将"Hello World $(b)“扩展为"Hello World $(b1)”"Hello World$(b2)“并与之呼应。
如果需要"Hello World 2 3",则需要将echo参数拆分为两个标记
echo "Hello World" $(b) ;https://stackoverflow.com/questions/11178863
复制相似问题