[疑难] 变量名称可以得到吗?

jinheking 2007-04-11
比如
int i,j;
通过某种方法我能够得到变量名称吗?

好像:
writeflen(i.getvariableName);

qiezi 2007-04-11
可以的,不过你要想办法提取出来,这里打印出来的是一个打乱过的名字:
import std.stdio;

class Foo(alias a)
{
}

template getname(alias a)
{
	const char[] getname = (Foo!(a)).mangleof;
}

void main()
{
	int iiiiiii = 1234567;
	writefln(getname!(iiiiiii));
}

把getname包到一个模块里,然后字符串格式就固定了,从指定位置(固定)提取一个长度(总长减最小长度)就可以了。

这是pyd里面的实现方式。
qiezi 2007-04-11
简单调用iiiiiii.stringof也可以
jinheking 2007-04-11
第二种方法正确
第一种方法有问题,你刻意试验一下
char[] str;
Cmain39__T7getnameS24_D7getname4mainFZv3strAaZ35__T3FooS24_D7getname4mainFZv3strAaZ3Foo
int ll;
Cmain37__T7getnameS22_D7getname4mainFZv2lllZ33__T3FooS22_D7getname4mainFZv2lllZ3Foo
有重复
也许有办法,就是告诉了变量长度。
qiezi 2007-04-11
3str
2ll
这不就是长度么?
jinheking 2007-04-11
我说的就是这个意思
Global site tag (gtag.js) - Google Analytics