问题标签 [dynamic-code]

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 投票
2 回答
546 浏览

objective-c - 使用动态代码枚举 NSArray 的块闭包和三元运算符

我不知道我正在尝试做的事情是否可行。我对积木没有经验,只是阅读了一些教程,并且非常喜欢这个想法。我的课程 AppointmentView.h(和 m)正在扩展 ViewController。它包含一些属性,这些属性是另一个类 Appointment 的成员,而后者又具有一些 NSArray。出于创建分组表视图的目的,我检查了数组的值,然后适当地复制将显示的值(不要太花哨或太复杂)。通常我会使用 if-else 语句,并进行适当的控制,但是在查看块之后,我开始思考以下是否可行:

此代码编译良好,但运行时崩溃。我的理解是这是错误的,因为我是在告诉枚举每次都执行一段代码。所以这不是我想要的。然后我尝试了以下方法:

虽然它编译得很好,但崩溃并出现以下错误:

-[ NSMallocBlock长度]:无法识别的选择器发送到实例 0x6bd68f0

我还尝试定义一个我可以使用的通用方法,但也没有帮助。所以,我想知道,这可能吗?我知道对于这段代码,我可以简单地使用 if-else(就像我通常那样)并完成它,但在其他情况下,这样的动态代码生成选项将非常有用。

我觉得任何一个 NSString 都不知道如何处理这个问题,因此我应该用一个选项来扩展它让我们说

初始化块:

或者我在这里遗漏了其他东西。或者这可能是不可能的......(?)

PS:我刚刚看到 NSArray 的 enumerateUsingBlock: 方法,但我不确定在这种情况下这是否能达到我的目的,因为数组中的每个条目都完全不同,并且特定的块不符合标准。

0 投票
2 回答
2719 浏览

java - 在编译时添加/生成方法

我目前正在构建一个 API,我将要求许多开发人员使用它。其中大部分都很简单,但有几个 API 调用本质上很复杂,但应该以几乎样板的方式使用。

我想做的是在类中生成样板代码,可能通过标记一些注释,但这些生成的方法在 Eclipse/IntelliJ 中可供开发人员查看。我查看了 Javassist,但不确定运行时性质是否是一件好事。我宁愿采用编译时方法。

如果可能的话,我希望隐藏实现的代码(即我不希望开发人员尝试更改生成方法的代码,因为它们将在重新编译时被覆盖)。

整个过程是为了向开发人员和维护人员隐藏处理的复杂性,并将其仅保留在核心框架代码中。

0 投票
2 回答
393 浏览

php - shell_exec 不能使用动态命令

这是脚本。我基本上是在使用一个工具来获得大约 3750 万个组合的结果,所以你可以理解这不是我自己可以做的事情,因此出现了这个脚本,之前我将所有候选人分成单独的文件,所以就是我这样称呼它们的 $name 变量的解释。

问题是shell_exec命令,初步的谷歌搜索确实没有解释为什么它会这样,但shell_exec拒绝处理动态命令,相反,如果我要制作一个静态命令,就像ractip xy.txt zy.txt它会处理那样,我需要做的是构建该命令,然后进行shell_exec处理,不幸的是它没有这样做,如果有人可以解释为什么这个命令会以这种方式运行以及是否有解决这个故障的方法,那将非常有帮助。

当论坛上的一个人说这些只是 php 做得不好的一些事情时,我终于明白了他的意思。

哦,是的,我正在通过浏览器部署它,不知道这是否有帮助。

0 投票
1 回答
397 浏览

c# - 如何从字符串运行代码?

我的程序中有一个文本框。在文本框中,您可以编写要运行的函数/方法的名称以及传递参数。如果我的案例被填充,这一切都被解析并通过一个大的开关块我为那个特定案例的代码,以及传递参数。

但是我真正想做的是使用stringbuilder构建源代码然后运行它!

这是使用我的 stringbuilder 构建的源代码示例。

使用 stringbuilder 创建字符串完全没有问题。但是我该如何运行它们呢?

我已经进行了很多测试,并设法将所有东西都准备好,但我认为我遗漏了一些东西,因为我的代码总是会产生错误......

这是我的源代码

这些是我在运行它时遇到的错误:

附加信息:编译器错误:

第 1,1 行:命名空间不能直接包含字段或方法等成员

第 1,25 行:预期的类、委托、枚举、接口或结构

第 1,1 行:命名空间不能直接包含字段或方法等成员

第 1,41 行:预期标识符

第 1,59 行:预期标识符

第 1,77 行:预期标识符

第 1,95 行:需要标识符

0 投票
1 回答
825 浏览

c# - 将字符串转换为 c# 可执行代码

我有一个小解决方案,我对此主题进行了研究,但找不到我正在寻找的确切内容,示例是在字符串中编译整个方法或完整表达式。我想要说我有这段代码,我试图使用 Newtonsoft.json 从 json 中提取数据,

我想要的是通过这个部分,

作为字符串并转换为 c# 代码,这样我就可以使该值动态地作为 json 文件格式彼此非常不同。

编辑:

以下是我正在使用的 json 字符串,

知道如何或什至可能吗?

0 投票
1 回答
951 浏览

c# - 使用 Reflection.Emit 从字符串生成动态代码

我在数据库表中存储了一些 C# 代码。

我在一个字符串中有一个基类的整个代码。

使用存储的 C# 代码,我向类中添加了一个名为m1包含 areturn <<some C# code>>;的方法(该方法始终返回object,因此 C# 代码可以是:88 + 90、、、"hello world"this.ToString()),将其保存到文件并使用 编译CSharpCodeProvider,然后运行它在我的程序上。

存储的 C# 代码可以使用基类中的一些方法。

这个方案效果很好。

现在,我将使用它Reflection.Emit来执行此操作,以避免编译步骤。

这有可能吗?如果可以,该怎么做?

0 投票
3 回答
2883 浏览

c# - 如何在动态生成的 C# 代码中初始化各种类型变量?

我有 T4 模板,我想在其中生成一个 .cs 文件。

我有一个数组System.Data.DataColumn,我想在生成的代码文件中用作私有变量。

ColumnName用作变量名、Value变量值和DataType变量数据类型。

我正在考虑在这种情况下如何初始化定义的变量:

我想看看输出:private System.String col1 = "text";

T4模板中的变量定义:

我正在考虑编写辅助方法,它将返回常见数据类型的变量初始化字符串。就像是:

如果有人做了类似的事情,你能建议这是一个好主意还是可以以更方便的方式完成?也许我应该读点什么?

0 投票
2 回答
111 浏览

elisp - elisp:使用easy-menu创建动态菜单并在创建期间而不是在调用时评估部分代码

我正在尝试为我自己的编译插件创建一个动态菜单,但我碰壁了。这是我目前拥有的代码:

我想要代码做的是制作一个名为“Build Subsystem”的子菜单并用条目填充它。但是没有创建条目。任何帮助,将不胜感激。

0 投票
1 回答
886 浏览

c++ - 嵌入式系统上的 C++ 动态代码注入

我正在寻找以下问题的解决方案:

  • 开发了在嵌入式设备上运行的 C++ 软件模块(不可能使用基于文件的函数“dlopen”来加载共享库),当模块运行时,它应该可以通过动态程序代码进行扩展
  • 动态代码在PC系统上编写(接口函数的实现)和交叉编译(gcc),然后通过总线系统发送到前面描述的在嵌入式设备上运行的软件模块
  • 嵌入式设备上的软件模块应将接收到的动态程序代码保存在内存中,并应能够调用其中的函数

我该如何解决这个问题?

我的第一种方法如下:

  • 在PC端交叉编译和链接动态代码作为共享库(ELF文件)
  • (传输后)ELF文件在内存中的嵌入式设备上可用
  • ELF 文件的重定位-> 在这里我目前完全不知道怎么做!有免费的图书馆来执行这种任务吗?

我不知道我的 ELF 文件方法是否可以工作?如果是这样,我应该如何执行图书馆搬迁?

有没有更好/不同的方法来解决我的问题?

0 投票
1 回答
1304 浏览

javascript - 动态代码生成选项

我有一个(假设的)问题,我认为解决方案是动态生成代码。

我想快速评估用户输入的任意数学函数,比如找到i^3+2i^2+6i+1 的总和 i=1 到N。N是任意的,而 i^3+2i^2+6i+1 也是任意的(它不必是多项式,它也可能包含三角函数和其他函数)。假设 N 可以很大。我想知道如何快速评估答案,假设我已经将用户输入解析为某些字节码或我的程序可以理解的其他内容。

如果可能的话,我还希望我的代码能够轻松编译并在不同的操作系统(包括移动设备)上运行。

我想了几个办法:

1)编写一个解释器来解释和执行我的字节码中的每个命令。这使我可以自由使用任何语言,但速度很慢。

2) 用Java/C# 编写并使用动态代码生成(例如是否可以动态编译和执行C# 代码片段?)。这将像我直接在我的源代码中编写函数一样快地执行,因为 C#/Java 都是 JIT 编译为机器代码的,所以速度会稍微慢一些。限制是 Java 在移动设备上不受广泛支持,而 C# 仅适用于 Windows。

3) 为我使用的任何编译语言嵌入一个汇编器/C++ 编译器/编译器。限制是它也不能在移动设备上运行——它不会让我执行数据文件。

4) 编写 HTML/Javascript,然后将其嵌入 Web 浏览器控件并将其放入应用程序中(我认为这是一些人用来制作可以在任何地方运行的通用应用程序的方式)。但它也很慢,用 Javascript 编写真正的应用程序很痛苦。

你认为哪个选项最合适?或者也许我应该混合使用,也许我的应用程序代码将创建并执行生成的 Javascript 函数?