【问题标题】:Name and lifetime of variables at compile time编译时变量的名称和生命周期
【发布时间】:2016-03-10 18:10:56
【问题描述】:

在我所知道的所有语言(Java、C++)中,变量的名称和生命周期总是在编译时知道的。是否有任何语言的名称和生存期将在运行时绑定?

此外,我目前正在使用 C++ 智能指针。什么时候知道生命周期和范围?

【问题讨论】:

  • JavaScript,python 可能吗? (不确定)
  • 变量没有生命周期; 对象做。
  • 范围在编译时是已知的。终生一般不是。
  • 这个问题很模糊......什么是“变量”?对象可以具有动态属性,即使在 C++ 中,如果您从支持它们的基础对象继承,那么当从更动态的语言(如 Javascript 或 Python)访问实例时,这些属性可能与编译时定义的属性无法区分。示例:doc.qt.io/qt-5/qobject.html#setProperty
  • 我没看懂,你不知道名字的变量有什么用?你能举个例子吗?

标签: java c++ scope lifetime


【解决方案1】:

对于 C++ 智能指针,智能指针的范围是常规范围。托管对象的范围由智能指针行为决定。

有很多语言使用动态/运行时范围。 Javascript、PERL、PHP 是少数。 https://en.wikipedia.org/wiki/Scope_%28computer_science%29#Dynamic_scoping

【讨论】:

    【解决方案2】:

    用java,没有先验,或者很困难

    看到这个:Is it possible to create variables at runtime in Java?

    在运行时你可以用它做什么?

    您可以根据需要引用变量(在数组中、整数中、在 Map 中...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      • 2017-08-21
      • 2015-05-03
      相关资源
      最近更新 更多