奇思妙想 · 2024年 9月 22日 0

编程语言的反射

44 次浏览

支持反射与否

  • C不支持反射。
  • ObjC NSObject提供了有限的反射支持。
  • C++ RTTI支持有限的反射,如typeid, dynamic_cast, std::type_info等。
  • Go也提供有限的反射支持。
  • C#/Java/Python/JS 支持非常强大的反射功能。

有趣的获取变量名称的方法

  • C# 提供nameof运算符可以编译期获取变量名称。例如:
    int val = 100;
    string s= nameof(val); // s: "val"