问题标签 [indirection]

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 投票
4 回答
2969 浏览

javascript - 间接访问变量

在我的代码(Firefox 扩展中的 javascript)中,我有一些变量的列表,如下所示:

我想访问这些变量以使用函数间接获取它们的值:

我这样称呼这个函数,例如:

现在,如何实现这个功能来做我想要的?

0 投票
5 回答
158 浏览

java - 重复间接的性能

我发现自己在争论是否要像 Code 1 和 Code 2 那样编写。在我看来,Code 1 看起来更干净,但从理论上讲,与 Code 2 相比,由于其额外的间接性,我是否可以期望性能损失?这里有任何相关的编译器优化吗?如果 bar() 返回 Bar*,有什么变化吗?

代码 1:

代码 2:

编辑:我认为有太多变量要问这样一个一般性问题(例如,const 与非 const 方法,编译器是否内联方法,编译器如何处理引用等)。在汇编中分析我的特定代码可能是要走的路。

0 投票
2 回答
403 浏览

c++ - 在 C++ 中,对象创建括号前的星号是什么意思?

我正在从网站上阅读 C++ 中的哈希表实现示例并看到了这个。

我不明白的语法是:

像这样的括号前有星号是什么意思?

0 投票
3 回答
1052 浏览

javascript - 通过函数名称查找表调用 javascript 函数(或方法)的最快方法是什么?

我正在用 JavaScript 模拟一个 8 位微处理器。我已将每个操作码函数名称存储在一个数组中,并调用与从我的虚拟内存读取的操作码相关的 256 个函数中的每一个,如下所示:

我最近更改了我的代码以摆脱 eval() 如下:

在 Mac Safari 中,以上两者之间没有明显的速度差异,这让我感到惊讶。我认为后者会更快,但我的虚拟时钟速度对于两者来说大致相同(目前峰值为 4MHz)。

由于与使用 eval() 相比,使用索引方法调用似乎没有速度损失,我希望也更新我的虚拟内存系统,但我对要使用的语法有一个心理障碍。

要写一个字节,我有:

我正在使用这种索引的间接方法,因此我可以将设备映射到地址范围并根据需要放置断点和观察点,这些断点和观察点都会拦截内存读取和写入 - 最大限度地提高性能。

关于如何在保持数据吞吐量的同时丢失 eval 的任何建议?

我想将外部方法映射到间接数组中,并且能够传递参数(要写入的值)。因此,无论哪个虚拟硬件使用公共接口访问虚拟内存,其他虚拟硬件都可以拦截该进程并在必要时监视或更改值。

0 投票
1 回答
168 浏览

bash - 使用用户定义的名称创建环境变量 - 间接变量扩展

我正在尝试在 bash 脚本中创建一个环境变量,用户将输入要创建的环境变量的名称并输入其值。

这是一种硬编码方式,只是为了详细说明我的问题:

它工作正常它的输出是:

但是,我想要一个通用代码。所以我试图从用户那里获取变量名称及其值的输入,但我遇到了麻烦。我不知道如何回显名称是用户定义的变量

现在,如果我这样做,我不知道如何回显环境变量:

它输出用户赋予环境变量的名称,而不是分配给它的值。如何在其中回显值?

谢谢

0 投票
1 回答
34 浏览

c# - 在间接数组中按对象属性的值搜索

我有一个 Int32 数组,每个元素都包含对另一个数组中对象的引用索引:

现在我需要找到 Time 最接近 some 的对象的索引Double d。比较的伪代码可能是这样的:

我不想手动编写算法。我可以以某种方式使用标准库算法之一吗?

编辑:

我认为重要的是_indices要按递增的顺序存储对象的索引.Time

0 投票
1 回答
69 浏览

javascript - 处理嵌套在多级条件中的函数调用

基本上,如果满足多个级别的条件,我想展示一些东西。我对 3 种不同方法的性能和可维护性很好奇。:

显示/隐藏可以在嵌套条件的操作之前、期间或之后发生。实际代码有更多级别的条件。我相信您可以提出自己的方法,但我特别询问这 3 种方法的性能和可维护性。我喜欢#3,因为它简短而中肯。要解决invernomuto,请帮助我了解具体的可维护性问题。

方法 1(上)。为每个可能的条件调用“hide_thing()”或“show_thing()”。缺点:每个条件的额外代码。

方法 2. 在开始时调用“hide_thing()”,然后在我希望激活它的特定条件内调用“show_thing()”。缺点:浪费的周期在稍后显示时隐藏事物。

方法 3. 将变量设置为“show_thing”或“hide_thing”,然后通过条件部分之后的变量调用函数。缺点:??

0 投票
2 回答
851 浏览

arrays - 使用 BASH 更新通过引用传递的数组

我想编写一个函数,它接受一个数组变量名并更新内容。例如:

我做了一个粗略的尝试,这需要输入数组的副本。使用间接引用,我能够创建输入变量的副本。数组的副本用于获取元素的计数。如果有更好的方法来做到这一点,请告诉我。

0 投票
1 回答
367 浏览

pointers - GCC,链接器脚本:解析为手动定义地址的变量?

我将使用一个简单的具体示例来说明我正在尝试做的事情。

文件main.c

我想知道是否可以(使用链接器脚本/gcc 选项)X在编译/链接时手动指定地址,因为我知道它位于内存中的某个位置,在我的可执行文件之外。

我只想知道这是否可能,我知道我可以使用指针(即unsigned int*)来访问特定的内存位置(r/w),但这不是我想要的。

我所追求的是让 GCC 生成代码,其中对全局变量/静态函数变量的所有访问要么通过间接级别完成,即通过指针(-fPIC不够好,因为静态全局变量不能通过 GOT 访问)或它们地址可以手动指定(在链接/编译时)。

谢谢

0 投票
1 回答
90 浏览

bash - Operate on variables in Bash directly in a loop

My googlefu is failing me. I have a bunch of variables I read it from a CSV where I want to strip whitespace. I could

but then I'm copying in and editing this for every variable change. It seems to me, from other languages, there should be a way to do a simple for loop that applies to the variables as named and strips the whitespace, but I can't figure out exactly how to do that.

but this doesn't work as far as I can tell. What I want to do is loop over all the variables, strip whitespace, but not have to manually type out each variable name in the script.