问题标签 [dynamic-languages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1839 浏览

c# - 在 C# 中按名称(字符串)访问实例变量,有点像动态语言

我有一些像这样的 C# 代码:

我想要这样的东西:

有没有简单的方法来做到这一点?我知道给定字符串中的类名,您可以使用 System.Activator 对其进行实例化,这有点相似,所以我希望....

0 投票
3 回答
3680 浏览

c# - C#:执行存储在字符串变量中的函数

是否可以在 C# 中编写一个简单快速的函数来执行字符串中的任意方法?例如,如果我设置 MyString="MessageBox.Show("Some Message")" 然后调用 ExecuteString(MyString),则会弹出一个消息框,其中包含“Some Message”。

(我可能在上面的代码中犯了某种错误。我还不知道 C#;我正在尝试评估它是否适合特定项目。)

0 投票
2 回答
661 浏览

data-structures - 缓存无视数据结构和动态语言 - 有效吗?

我最近一直在阅读有关缓存遗忘的数据结构,例如辅助缓冲区堆。这些数据结构通过将最近访问的元素保存在高速缓存中来工作,因此任何后续访问也更快。

这些数据结构中的大多数都是用 C/C++ 等低级语言实现的。尝试将这些数据结构移植到像 Python 这样的动态语言是否值得,或者在虚拟机上运行的开销是否会破坏这些数据结构的所有性能优势?似乎是后者,但我想我会问是否有人真的有这方面的经验。

0 投票
1 回答
167 浏览

java - 你如何运行达芬奇机器?

Da Vinci Machine是否有 IDE 支持?

您如何安装和使用它?

0 投票
2 回答
343 浏览

java - 什么时候可以在标准 JDK 中使用 invokedynamic?

我渴望开始在 Java 之上使用动态语言。

在这成为标准 JDK 的一部分之前多久?

0 投票
9 回答
4959 浏览

performance - 动态语言比静态语言慢吗?

动态语言是否比静态语言慢,例如,运行时必须一致地检查类型?

0 投票
3 回答
1060 浏览

java - 调用最接近拟合方法

作为开发小型 ScriptEngine 的一部分,我反思地调用 java 方法。脚本引擎的调用为对象提供了方法名称和参数数组。为了调用该方法,我尝试通过调用 Class.getMethod(name, argument types) 来解决它。
然而,这仅在参数的类和方法预期的类相同时才有效。

我想知道是否有一种“简单”的方法来获得正确的方法,如果可能的话最适合参数类型,或者我是否必须自己实现。

最接近的拟合是:

更新:
澄清我需要什么:脚本引擎是我在空闲时间编写的一个小项目,所以没有我必须遵循的严格规则。所以我认为选择从引擎调用的方法就像java编译器在编译时选择方法一样,只有动态类型而不是对象的静态类型才会起作用。(有或没有自动装箱)
这是我首先希望的Class.getMethod() 会解决。但是 Class.getMethod() 需要与方法声明的参数类型完全相同的类,使用子类将导致无此类方法异常。这可能有充分的理由发生,但使该方法对我来说毫无用处,因为我事先不知道哪些参数类型适合。
另一种方法是调用 Class.getMethods() 并遍历返回的数组并尝试找到合适的方法。然而,如果我不只是想采用我遇到的第一个“好”方法,这将是复杂的,所以我希望有一个至少可以处理的现有解决方案:

  • 最接近的拟合:如果 arg.getClass() == 子类和方法 m(Superclass), m(Subclass) 然后调用 m(Subclass)
  • 可变参数:System.out.printf(String ,String...)

对自动装箱的支持也会很好。
如果无法解决调用,它可能会引发异常( ma(String,Object), ma(Object, String), args= String,String)
(如果您一直到这里,感谢您抽出宝贵时间阅读:- ))

0 投票
2 回答
515 浏览

c# - 如何通过堆栈跟踪访问本地人?(模仿动态范围)

背景

即使可以在运行时编译 C# 代码,也不可能在当前范围内包含并运行生成的代码。相反,所有变量都必须作为显式参数传递。

与 Python 等动态编程语言相比,我们永远无法真正复制eval(如本例所示)的完整行为。

问题

所以我的问题是(不管它是否真的有用;))是否可以通过使用反射来模拟.NET 中的动态范围

由于 .NET 为我们提供了Diagnostics.StackTrace允许我们检查调用方法的类,所以这个问题归结为以下几点:(如何)可以可靠地访问调用方法的本地变量吗?

堆栈跟踪是否为我们提供了足够的信息来计算内存偏移量,或者在托管代码中是否禁止此类事情?

这样的代码有可能吗?

0 投票
9 回答
8986 浏览

ioc-container - 为什么动态语言不需要 IOC 容器

Herding Code 播客第 68 期http://herdingcode.com/herding-code-68-new-year-shenanigans/中有人表示,IOC 容器不适用于 Python 或 Javascript 或类似的文字。我假设这是传统智慧,它适用于所有动态语言。为什么?动态语言使 IOC 容器变得不必要的原因是什么?

0 投票
6 回答
1208 浏览

python - 所有动态语言都有循环导入问题吗?

对于以下 Python 代码:

第一个.py

第二个.py

创建文件并从 shell 运行以下命令后:

我得到错误:ImportError: cannot import name Second

像 Ruby 这样的其他动态语言有这种问题吗?我问的原因是因为我在 Django 项目中遇到了这个问题,其中 2 个模型相互依赖。我知道可能的解决方案是重新设计项目或按需导入。我只想知道其他动态语言的开发人员是否遇到过这个问题。