小编Pho*_*nix的帖子

使用三元运算符(或类似)的中间变量来获得更好的性能?

假设在C++(或C,Java等)中我有这样的代码:

int a = f() > g() ? f() : g();
Run Code Online (Sandbox Code Playgroud)

这当然分配一个 F()和g的返回值之间具有较大().现在假设f()和g()本身是复杂而缓慢的,我应该用这样的东西替换这一行

int f_value = f();
int g_value = g();
int a = f_value > g_value ? f_value : g_value;
Run Code Online (Sandbox Code Playgroud)

所以既不F()和G()将被调用两次,或者是编译器(给予足够的优化)会为我做这样的事情呢,所以我没有做任何事情?

当然,这个一般性问题也适用于许多类似的情况.

c++ optimization

25
推荐指数
3
解决办法
1685
查看次数

如何使用夜间通道进行货物测试?

我正在尝试使用Windows Powershell每晚使用Rust运行我的测试.我cargo test在目录中运行,我得到了

Compiling rustcraft v0.1.0 (file:///C:/Users/Phoenix/Desktop/Rust/rustcraft)
error[E0554]: #![feature] may not be used on the stable release channel
 --> C:\Users\Phoenix\Desktop\Rust\rustcraft\src\main.rs:1:1
  |
1 | #![feature(integer_atomics)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
 --> C:\Users\Phoenix\Desktop\Rust\rustcraft\src\main.rs:2:1
  |
2 | #![feature(collections)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

显然,我必须告诉Cargo在夜间频道编译它,但是怎么样?我找不到在帮助部分或我找到的任何网站中指定频道的任何参考.

rust rust-cargo

12
推荐指数
2
解决办法
9681
查看次数

当父级缩小时 JTextArea 不换行

我正在创建一个显示消息聊天日志的 Java Swing 应用程序。该帧仅包含 a ,JScrollPane其中有一个VerticalLayout,并且其中有无限数量的JTextAreas,每条消息一个。sJTextArea是不可编辑的,我使用它们而不是 a 的唯一原因JLabel是我需要换行文本。

\n

作为测试,我创建了框架并添加了两条消息。

\n

文本区

\n

这按预期工作,组件形成连续的文本页面并环绕框架。

\n

然后我增加框架的大小。

\n

JTextArea 扩展

\n

这仍然按预期工作,JScrollPaneJTextAreas 已经扩展并且文本已经重新包装。

\n

然后我将窗口缩小到较小的尺寸。

\n

JTextArea 缩小了

\n

这没有按预期工作。保持JScrollPane其最大尺寸并且单词不会换行。我怎样才能做到当框架宽度方向缩小时,JScrollPaneJTextAreas 也会缩小?

\n

我已经尝试过的事情:

\n
    \n
  • 实例化JScrollPanewithJScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER
  • \n
  • 给每个JTextArea一个BoxLayoutBorderLayout
  • \n
  • 将每个包裹JTextArea在 a 中JPanel并给面板一个BoxLayoutorBorderLayout
  • \n
  • 重新验证/重新绘制JScrollPane调整大小事件
  • \n
  • 调整事件大小时调用setSize(Dimension d) …

java swing jscrollpane jtextarea

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

Scala 类型上限和下限

我在 scala 中找不到一种同时施加上限和下限类型的方法。我需要创建一个泛型函数,其中类型参数既可散列(AnyRef 的子类型)又可为空(Null 的超类型)。

我可以这样实现前者:

def foo[T <: AnyRef](t: T) = ???
Run Code Online (Sandbox Code Playgroud)

后者是这样的:

def bar[T >: Null)(t: T) = ???
Run Code Online (Sandbox Code Playgroud)

有没有办法可以同时做这两件事?谢谢。

generics scala

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

查找专用应用程序文件夹的位置

很抱歉,如果该标题的名称不正确,我想不出一种更好的短语表达方式,因此欢迎您进行修改。

我见过的大多数需要硬盘文件存储的应用程序都会根据操作系统在合适的位置创建一个文件夹。在Windows上,这些文件夹位于\ Users \ [当前用户] \ AppData \ [etc]中,在Mac上,这些文件夹位于/ Users / [当前用户] / Library / Application Support / [etc]中,Ubuntu具有与我类似的功能现在想不起来。

我想知道,如何在具有不同用户的不同操作系统中始终找到这些文件路径?至少在Java中,有没有一种简单的方法来实现此目的?

谢谢。

java file

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

标签 统计

java ×2

c++ ×1

file ×1

generics ×1

jscrollpane ×1

jtextarea ×1

optimization ×1

rust ×1

rust-cargo ×1

scala ×1

swing ×1