Questions tagged «indirection»

5
什么是间接扩展?$ {!var *}是什么意思?
我正在阅读《Bash初学者指南》。它说: 如果的第一个字符PARAMETER是感叹号,则Bash将从其余部分形成的变量的值PARAMETER用作变量的名称;然后扩展此变量,并在其余替换中使用该值,而不是其PARAMETER自身的值。这称为间接扩展。 给出的示例是: franky ~> echo ${!N*} NNTPPORT NNTPSERVER NPX_PLUGIN_PATH 我在这里不太明白: 由其余部分形成的变量的值 PARAMETER 由于PARAMETER是刚刚!N*的话 其余的 PARAMETER 就是N*。这如何形成变量?Bash在那里搜索了所有可能的命令吗?
85 bash  indirection 

3
PHP中的动态常量名称
我试图动态创建一个常量名称,然后获取该值。 define( CONSTANT_1 , "Some value" ) ; // try to use it dynamically ... $constant_number = 1 ; $constant_name = ("CONSTANT_" . $constant_number) ; // try to assign the constant value to a variable... $constant_value = $constant_name; 但是我发现$ constant值仍然包含常量的名称,而不是VALUE。 我也尝试了间接的第二层,$$constant_name但这会使它成为变量而不是常量。 有人可以对此有所启发吗?

2
标量值在推送后是否受到影响……(Raku)
我很难理解在推送Scalar之后何时以及为什么推送的容器所持有的价值会受到影响。我将在两个风格化的示例中尝试更复杂地说明我遇到的问题。 *示例1 *在第一个示例中,标量作为a的一部分$i被推到数组@b上List。推送之后,使用$i++指令在for循环的后续迭代中显式更新标量所拥有的值。这些更新会影响数组中的值@b:在for循环的末尾,@b[0;0]等于3,不再等于2。 my @b; my $i=0; for 1..3 -> $x { $i++; say 'Loose var $i: ', $i.VAR.WHICH, " ", $i.VAR.WHERE; if $x == 2 { @b.push(($i,1)); say 'Pushed $i : ', @b[0;0].VAR.WHICH, " ", @b[0;0].VAR.WHERE; } } say "Post for-loop"; say "Array : ", @b; say 'Pushed $i …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.