如何使toStr[list]
获取符号列表并将其作为字符串返回?我希望a=1;toStr[{a}]
提供{"a"}
更新03/02 :Leo的配方也有效,也是为了制作一个版本,它取一个序列而不是列表我SetAttribute[toStr2,HoldAll];toStr2[a__]:=toStr[{a}]
答案 0 :(得分:7)
您可以使用HoldForm
:
a = 1; b = 2;ToString@HoldForm[{a, b}]
这会给{a, b}
。要使其成为toStr
函数,您需要设置属性,使其不评估参数:
ClearAll[toStr]; SetAttributes[toStr, {HoldAll, Listable}];
toStr[x_] := ToString@HoldForm[x];
a = 1; b = 2; toStr[{a, b}]
或者,您可以使用Unevaluated
;在上面的代码toStr[x_] := ToString@Unevaluated[x]
中也可以正常工作。