相关疑难解决方法(0)

如何获取源代码中的变量名称(使用反射)

我正在尝试构建一个易于使用的模板系统。基本上我只想用不同的变量(字符串)创建一个切片,然后遍历切片并用{{}}实际值替换标记。因此,如果变量 ' name' 是onevar,它将在模板中查找{{onevar}}并将其替换为变量的实际值。

问题:如何获取变量名?基本上是源代码中的内容。是否可以 ?我已经尝试过一些带有反射的东西,但似乎我做对了。见下图

onevar := "something"
other := "something else"

var msg string
    sa := []string{onevar, other}
    for _, v := range sa {
        vName := reflect.TypeOf(v).Name()
        vName = fmt.Sprintf("{{%s}}", vName)
        msg = strings.Replace(msg, vName, v, -1)
    }
Run Code Online (Sandbox Code Playgroud)

go

8
推荐指数
1
解决办法
1万
查看次数

在Golang中获取方法参数名称

给出以下Go方法:

func (t *T) TMethod(data *testData) (interface{}, *error) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想反映参数的名称(data在这里).

我尝试了以下,但它返回结构名称(testData在这里):

reflect.ValueOf(T).MethodByName("TMethod").Type().In(0).Elem().Name()
Run Code Online (Sandbox Code Playgroud)

如何获取参数的名称?

reflection go

6
推荐指数
1
解决办法
7000
查看次数

在编译时获取变量名的标准方法

在C++ 11或更高版本中是否有某种方法可以实现类似的行为:

int some_int;
std::string x=variable_name<some_int>::value; //Theoretical code 
std::cout << x;
Run Code Online (Sandbox Code Playgroud)

结果应该是:

some_int

如果没有,是否有编译器特定的方法来做到这一点?我的目标是MSVS.

c++ compile-time c++11

5
推荐指数
3
解决办法
3288
查看次数

如何获取宏中变量的名称和值?

是否可以创建一个 Rust 宏来访问作为参数传递的变量的名称和值?

let my_variable: i32 = 5;
printvar!(my_variable); // => to print "my_variable = 5"
Run Code Online (Sandbox Code Playgroud)

例如,对于 C 宏,我们可以使用#运算符:

#include <stdio.h>

#define PRINT_VAR(x) printf("%s = %d\n", #x, x);

 int main() {
    int my_variable = 5;
    PRINT_VAR(my_variable);
}
Run Code Online (Sandbox Code Playgroud)
$ ./a.out
my_variable = 5
Run Code Online (Sandbox Code Playgroud)

macros rust rust-macros

1
推荐指数
1
解决办法
663
查看次数

标签 统计

go ×2

c++ ×1

c++11 ×1

compile-time ×1

macros ×1

reflection ×1

rust ×1

rust-macros ×1