假设在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()将被调用两次,或者是编译器(给予足够的优化)会为我做这样的事情呢,所以我没有做任何事情?
当然,这个一般性问题也适用于许多类似的情况.
我正在尝试使用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在夜间频道编译它,但是怎么样?我找不到在帮助部分或我找到的任何网站中指定频道的任何参考.
我正在创建一个显示消息聊天日志的 Java Swing 应用程序。该帧仅包含 a ,JScrollPane其中有一个VerticalLayout,并且其中有无限数量的JTextAreas,每条消息一个。sJTextArea是不可编辑的,我使用它们而不是 a 的唯一原因JLabel是我需要换行文本。
作为测试,我创建了框架并添加了两条消息。
\n
这按预期工作,组件形成连续的文本页面并环绕框架。
\n然后我增加框架的大小。
\n
这仍然按预期工作,JScrollPane和JTextAreas 已经扩展并且文本已经重新包装。
然后我将窗口缩小到较小的尺寸。
\n
这没有按预期工作。保持JScrollPane其最大尺寸并且单词不会换行。我怎样才能做到当框架宽度方向缩小时,JScrollPane和JTextAreas 也会缩小?
我已经尝试过的事情:
\nJScrollPanewithJScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVERJTextArea一个BoxLayout或BorderLayoutJTextArea在 a 中JPanel并给面板一个BoxLayoutorBorderLayoutJScrollPane调整大小事件setSize(Dimension d) …我在 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)
有没有办法可以同时做这两件事?谢谢。
很抱歉,如果该标题的名称不正确,我想不出一种更好的短语表达方式,因此欢迎您进行修改。
我见过的大多数需要硬盘文件存储的应用程序都会根据操作系统在合适的位置创建一个文件夹。在Windows上,这些文件夹位于\ Users \ [当前用户] \ AppData \ [etc]中,在Mac上,这些文件夹位于/ Users / [当前用户] / Library / Application Support / [etc]中,Ubuntu具有与我类似的功能现在想不起来。
我想知道,如何在具有不同用户的不同操作系统中始终找到这些文件路径?至少在Java中,有没有一种简单的方法来实现此目的?
谢谢。
java ×2
c++ ×1
file ×1
generics ×1
jscrollpane ×1
jtextarea ×1
optimization ×1
rust ×1
rust-cargo ×1
scala ×1
swing ×1