标签: conditional-execution

在java中增强for循环的最后一次迭代

有没有办法确定循环是否最后一次迭代.我的代码看起来像这样:

int[] array = {1, 2, 3...};
StringBuilder builder = new StringBuilder();

for(int i : array)
{
    builder.append("" + i);
    if(!lastiteration)
        builder.append(",");
}
Run Code Online (Sandbox Code Playgroud)

现在问题是我不想在最后一次迭代中附加逗号.现在有一种方法可以确定它是最后一次迭代还是我坚持使用for循环或使用外部计数器来跟踪.

java foreach for-loop conditional-execution

134
推荐指数
9
解决办法
7万
查看次数

为什么有条件执行的指令不存在于以后的ARM指令集中?

天真的,有条件执行的指令对我来说似乎是一个好主意.

当我阅读更多关于ARM(和类似ARM)的指令集(Thumb2,Unicore,AArch64)时,我发现它们都缺少条件执行的位.

为什么每个都缺少条件执行?

条件执行当时是错误的,还是后续的更改使得它成为指令位的昂贵浪费?

assembly arm computer-architecture conditional-execution

17
推荐指数
4
解决办法
4818
查看次数

适用于3.7 PEP 553之前版本的python条件调试断点单行代码,其行为类似于Perl的$ DB :: single = 1

在PEP 553 breakpoint()实用程序之前的python版本中,推荐的方法是添加(理想情况下是单行)代码以具有可以在某种条件下忽略的断点(例如,全局调试标志或args.debug标志)的推荐方法。

在Perl中,我习惯于使用$DB::single=1;1;单行,我知道我可以放心地留在代码中,perl code.pl除非明确调用,否则不会影响的正常运行perl -d code.pl。例如:

my $a = 1;
$DB::single=1;1; # breakpoint line
my $b = 2;
print "$a $b\n";
Run Code Online (Sandbox Code Playgroud)

如果我将此代码运行为:perl code.pl,它将运行完成。如果我使用以下代码运行该代码:perl -d code.plpdb它将在断点行处停止(而不是在带有my $b = 2;语句的下一行之前),因为它在1;语句后包含一条$DB::single=1;语句;

同样,如果我写:

my $debug = 1;
my $a = 1;
$DB::single=$debug;1; # first breakpoint line
my $b = 2;
$DB::single=$debug;1; # second breakpoint line
print "$a $b\n";
# [...] Lots more code sprinkled …
Run Code Online (Sandbox Code Playgroud)

python debugging perl breakpoints conditional-execution

15
推荐指数
2
解决办法
327
查看次数

Maven - 如何执行条件执行

有没有办法在pom.xml中执行片段的条件执行?我的要求是根据pom.xml中定义的变量复制文件/目录以部署结构...

例如:

< if >
    < equals arg1="package" arg2="package"/>
       < then>
              ....
           < /then>
     < /if>
Run Code Online (Sandbox Code Playgroud)

不知道我怎么能做到这一点!

任何指针都将受到高度赞赏.

谢谢,SR

maven conditional-execution

5
推荐指数
1
解决办法
2万
查看次数

如何在 React / Preact 中传递条件子级(又名 &lt;If&gt; 组件)

有时我需要创建一个包装元素,该元素将根据自己的逻辑显示(或不显示)其子元素,并可选择将它们包装在自己选择的元素中:

<SomeWrapper some={condition}>
  Hello
</SomeWrapper>
Run Code Online (Sandbox Code Playgroud)

这是可行的,因为孩子们(“Hello”)是静态的。但是,如果子级要动态计算并且只有在条件成立时才能明确定义,该怎么办?

<SomeWrapper some={condition}>
  <ul>
    {this.may.not.exist.unless.condition.map(item => 
      <li key={item.id}>{item.text}</li>
    )}
  </ul>
</SomeWrapper>
Run Code Online (Sandbox Code Playgroud)

在这里,如果条件为 false 并且包装器元素不使用其子元素,它们仍将被创建并沿树向下传递,浪费资源并可能在此过程中引发错误。

一种解决方案(可能是最好的?)是将内容包装在它们自己的组件中:

<SomeWrapper some={condition}>
  <InnerContent/>
</SomeWrapper>
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为(AFAIK,如果我错了请纠正我)InnerContent 的构造函数和渲染不会被调用,除非 SomeWrapper 实际上决定使用它的childrenprop。

但是如果我不想为 3 行代码创建组件怎么办?

我在野外看到过两种选择,但没有一个特别有吸引力:

  1. 作为唯一的孩子传递一个重击:

    <SomeWrapper some={condition}>{() =>
      <ul>  
        {this.may.not.exist.unless.condition.map(item => 
          <li key={item.id}>{item.text}</li>
        )}
      </ul>
    }</SomeWrapper>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 传递一个 thunk 作为 prop:

    <SomeWrapper some={condition} render={() =>
      <ul>  
        {this.may.not.exist.unless.condition.map(item => 
          <li key={item.id}>{item.text}</li>
        )}
      </ul>
    }/>
    
    Run Code Online (Sandbox Code Playgroud)

我不喜欢它们,因为 lambda 给代码增加了视觉噪音,更不用说浪费资源,在每次render()执行时都重新创建(AFAIK。)

还有其他我没有看到的解决方案吗?我应该始终使用 InnerContent 元素吗?

conditional-execution reactjs preact

3
推荐指数
1
解决办法
3343
查看次数

如何在bash中有条件地添加管道元素

我需要形成各种命令的管道。管道的某些元素或元素序列仅在某些条件成立时才相关。现在,我可以写:

if [[ $whatever ]]; then
   cmd1 | cmd2 | cmd3 | cmd4
else
   cmd1 | cmd4
fi
Run Code Online (Sandbox Code Playgroud)

但这意味着重复cmd1and cmd4,另外,可能有几个条件,我不想写嵌套的 if 。所以,我试着写这个:

if [[ $whatever ]]; then
    pipeline_segment="| cmd2 | cmd3"
else
    pipeline_segment=""
fi

cmd1 ${pipeline_segment} | cmd4
Run Code Online (Sandbox Code Playgroud)

但是 - 管道符号没有被解释为使用管道的指令。

我如何让 bash 也执行我想要的管道?

注意:您可以假设 bash 版本为 4 或更高,但前提是您必须这样做。

bash pipeline pipe conditional-execution

1
推荐指数
2
解决办法
53
查看次数