我只是想知道rand(http://www.cplusplus.com/reference/cstdlib/rand/)函数是否会生成相同的随机数序列,同时使用相同的种子,在不同的 libc实现上运行,甚至不同的编译器和操作系统(win,linux).
我使用各种编译器(g ++ 4.8,g ++ 5.1和clang)进行了一些测试,似乎答案是肯定的,但我没有发现任何"正式"提到C的随机数生成中使用的PRNG算法(http://pubs.opengroup.org/onlinepubs/009604599/functions/rand.html),还是这些都应该在标准中提到的...
我正在更新一个应用程序,我读到现在处理视图的推荐方法是使用视图绑定。我按照说明进行操作,但是遇到了一些问题:
添加点击侦听器的效果如下:
((LinearLayout) findViewById(R.id.btn_login)).setOnClickListener(v -> {
Log.v(TAG, "findViewById press");
});
Run Code Online (Sandbox Code Playgroud)
而以下内容则不然
binding.btn_login.setOnClickListener(v -> {
Log.v(TAG, "View Binding press");
});
Run Code Online (Sandbox Code Playgroud)
文档说应该。我想在一个新项目上尝试这个,以确保它在某种程度上与应用程序配置无关,但我得到了相同的结果 - 它不起作用。
我像这样初始化它:
public class Login extends BaseClassFragmentActivity {
ActivityLoginBinding binding;
private final String TAG = "[LOGIN]";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
binding = ActivityLoginBinding.inflate(getLayoutInflater());
}
}
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?
阅读文档时,我注意到一句话:“ Rust没有C样式的循环。”。因此,我想知道如何使循环等效for(i = 0; i < 10; i += 2) { }?
我能想到的方式是:
for i in 0..10 {
if i % 2 == 0 {
//Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
甚至:
let i = 0;
loop {
if i < 10 {
//Do stuff
i += 2;
} else {
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我不确定这是最好的方法,尤其是因为它确实很冗长。有没有更好的办法?我猜想它将与迭代器,但我不确定如何做到这一点。