问题标签 [dynamic-function]

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 投票
5 回答
233 浏览

javascript - 这是一个合适的情况,在这种情况下使用动态函数创建是合理的吗?

我目前正在开发一个教程网站,用于教授 Web 开发的基础知识(HTML、CSS 和 JavaScript,对于初学者)。我想要一个可以深入涵盖各种主题的设置,然后提供一个基本的沙盒环境,用户可以在其中编写代码来解决每个教程部分末尾提出的问题。

例如,如果我在之前的教程中介绍了乘法,并且用户刚刚完成了有关能够返回值的函数的课程,我可能会要求他们提交一个返回两个参数乘积的函数。

这不是使用动态函数创建被认为是一个好主意的完美实例吗?让我们看一个例子。

这是一个坏主意吗?如果是这样,请解释一下。

0 投票
18 回答
317792 浏览

php - 如何从存储在变量中的字符串调用函数?

我需要能够调用一个函数,但是函数名存储在一个变量中,这可能吗?例如:

0 投票
2 回答
4217 浏览

lua - Lua:动态调用带参数的函数

使用 Lua,我试图动态调用带参数的函数。我想以以下方式发送要解析的字符串:

  • 第一个参数是一个类实例“句柄”
  • 第二个是要调用的函数
  • 剩下的就是争论

“模块”是一个表,例如{ string=<instance of a class> }
split() 是一个简单的解析器,它返回一个带有索引字符串的表。

当我通过“参考 1”尝试使用“ignore remove bob”时,它会尝试在模块中与“ignore”关联的实例上调用“remove”,并给出包含在表中的参数“bob”(带有单值)。

但是,在调用的另一端,remove 函数不接收参数。我什至尝试将“参考 1”行替换为

但我得到了同样的结果。

这是另一个不接收参数的函数"bob"

当我试图找出问题所在时,我在代码中添加了“参考 2”。当我执行“忽略删除 bob”,或者当我在“参考 1”上将“unpack(args)”替换为“bob”时,“remove”中的变量“name”仍然为零。

0 投票
3 回答
1199 浏览

php - codeigniter 或任何 php mvc 框架中的动态操作名称

我注意到许多网站都能够使用用户名或页面标题作为操作。这是怎么做到的?

例如,而不是 www.example.com/users/my_username (用户操作是通用的并负责获取用户数据)我怎么能制作这个 www.example.com/my_username?

非常感谢。

0 投票
3 回答
511 浏览

php - 动态功能,可变输入

现在,假设我有这样的代码......

我的问题从这里开始,如何根据这些在参数中指定正确的变量?我有一些想法,例如为每个指定这些功能的函数创建一个列表,但我真的很想看到一个优雅的解决方案。

0 投票
4 回答
2231 浏览

python - 无法使用字符串调用函数

我正在尝试根据传入的字符串调用类中的函数。

我尝试按照此链接中的步骤操作: Calling a function of a module from a string with the function's name in Python

这是我的代码:

我得到错误:

关于为什么没有为 methodToCall 分配我正确的方法名称的任何想法?

我也试过

然后我收到消息:

好像 getattr 在我的课堂上找不到我的方法。

listOfPlayerFleets 是舰队对象的列表

这是舰队对象的样子,您可以看到这些方法确实存在。

0 投票
4 回答
1410 浏览

objective-c - 如何在 Objective-C 运行时创建函数

所以这里已经很晚了,我的谷歌技能似乎让我失望了。我之前(一次又一次)在 SO 上找到了一些很好的回应,我认为你们可以提供帮助。

我有一个神经网络,我试图在本机 Objective-c 中运行。它有效,但它太慢了。这些网络不是循环的。每个网络我运行大约 20,000 次(128x80 次,或大约)。问题是这些网络实际上只是归结为数学函数(每个网络都是一个 4 维函数,以 x,y,dist(x,y) 和偏差作为输入,并输出 3 个值)。

我想要做的是将每个网络(仅一次)转换为函数调用,或在运行时在 Objective-C 中的代码块。

我该怎么做呢?我可以制作一大串需要执行的数学运算,但是我该如何去执行那个字符串,或者将字符串转换成一个代码块来执行呢?

再次,我深夜的搜索失败了,如果这已经得到回答,我很抱歉。任何帮助是极大的赞赏。

-保罗

编辑:啊哈!巨大的成功!将近 24 小时后,我有了工作代码,可以将具有多达 4 个输入的神经网络转换为单个 4 维函数。我在答案中使用了 Dave DeLong 建议的块方法。

对于任何想要关注我未来所做的事情的人,这里是我所做的(快速)细分(如果这是 stackoverflow 上的不正确礼仪,请原谅):首先,我为不同的块做了一些 typedef功能:

oneDFunction 采用 f(x) 的形式,twoD 是 f(x,y) 等。然后我制作了组合两个fourDFunction 块的函数(以及2 个oneD、2 个twoD 等,尽管这些不是必需的)。

当然,我需要将激活函数应用于每个节点的fourD函数,对于每个节点,我需要乘以连接它的权重:

};

然后,对于网络中的每个节点,我简单地将激活函数应用于源神经元的四个函数之和乘以它们的连接权重。在组合完所有这些块之后,我从每个输出中获取了最终函数。因此,我的输出是输入的单独 4D 函数。

感谢您的帮助,这非常酷。

0 投票
4 回答
6282 浏览

php - __callStatic()、call_user_func_array()、参考和 PHP 5.3.1

我一直在阅读 SO 和其他地方,但我似乎找不到任何结论性的东西。

有什么方法可以有效地通过此调用堆栈进行引用,从而产生下面示例中描述的所需功能?虽然这个例子并没有试图解决它,但它确实说明了这个问题:


为了激发潜在的解决方案,我将在此处添加摘要详细信息:

只关注call_user_func_array(),我们可以确定(至少在 PHP 5.3.1 中)您不能通过引用隐式传递参数:

通过显式传递数组元素$test作为引用,我们可以缓解这种情况:

当我们使用 引入类时__callStatic(),通过引用的显式调用时间参数似乎按照我的预期进行,但是会发出弃用警告(在我的 IDE 中):

省略引用运算符会TestClass::testFunction()导致$test按值传递给__callStatic(),当然也作为数组元素按值传递给testFunction()via call_user_func_array()。这会导致警告,因为testFunction()需要引用。

到处乱窜,一些额外的细节浮出水面。定义,如果写成通过__callStatic()引用返回 ( public static function &__callStatic()) 没有可见的效果。此外,将$arguments数组的元素重铸__callStatic()为引用,我们可以看到这call_user_func_array()在某种程度上按预期工作:

这些结果是预期的,因为$test不再通过引用传递,更改也不会传递回其范围。然而,这证实了它call_user_func_array()实际上是按预期工作的,而且问题肯定仅限于召唤魔法。

经过进一步阅读,这似乎是 PHP 处理用户函数和__call()/__callStatic()魔法中的一个“错误”。我仔细阅读了现有或相关问题的错误数据库,并找到了一个,但无法再次找到它。我正在考虑发布另一份报告,或请求重新打开现有报告。

0 投票
2 回答
286 浏览

php - 随机执行 2 个函数中的 1 个的脚本?

是否可以修改下面的脚本,使每个选项的值都是一个函数?

显然,这不起作用:

}

(上面随机化脚本的 yes123 的道具)

0 投票
2 回答
644 浏览

php - 在 memcached 中存储 php 函数变量

我想知道是否可以将函数变量存储在 memcached 中。我编写了将 xml 模板编译成函数的基本模板系统。模板可以变得非常大,如果我可以缓存它,我想我可以提高性能。像这样的东西会起作用,还是我只是缓存对函数的引用?

编辑:我确实意识到有php 加速器可以完全满足我的要求,但是能够使用 memcached 会容易得多,因为我不必经历获得另一项技术批准的过程。