这应该是一个愚蠢的问题.
scala> val aFloat = 1.5f
aFloat: Float = 1.5
Run Code Online (Sandbox Code Playgroud)
如何以简单的方式将aFloat强制转换为Int?
我已经知道要使用了a.asInstanceOf[Int].但它需要太多的击键.
请帮助我理解来自Facebook Pop:PopVector.h的代码片段
模板类Vector2包含一个静态成员_v,它看起来像是支持以下实例的数据Vector2:
private:
typedef T Vector2<T>::* const _data[2];
static const _data _v;
Run Code Online (Sandbox Code Playgroud)
_v 由以下行实例化:
template<typename T>
const typename Vector2<T>::_data Vector2<T>::_v = { &Vector2<T>::x, &Vector2<T>::y };
Run Code Online (Sandbox Code Playgroud)
然后_v用于实现索引运算符:
const T& operator[](size_t i) const { return this->*_v[i]; }
T& operator[](size_t i) { return this->*_v[i]; }
Run Code Online (Sandbox Code Playgroud)
我不熟悉这个代码模式,并有几个问题:
Vector2<T>::*_v要成为静态成员?它似乎不是跨实例共享的,它不遵循C++ AFAICT中的静态语义.更新:非常感谢Gabe和Glenn的详细解释.该测试不是用于语言比较基准,而是为了研究VM优化技术.
我做了一个简单的测试来理解Java和Python之间字符串连接的性能.
该测试是两种语言中默认不可变String对象/类型的目标.所以我不在Java测试中使用StringBuilder/StringBuffer.
测试只需添加100k次的字符串.Java消耗约32秒完成,而Python仅使用约13秒的Unicode字符串和0.042秒的非Unicode字符串.
我对结果有点惊讶.我认为Java应该比Python更快.Python利用什么优化技术来实现更好的性能?或者String对象在Java中设计得太重了?
操作系统:Ubuntu 10.04 x64 JDK:Sun 1.6.0_21 Python:2.6.5
Java测试确实使用-Xms1024m来最小化GC活动.
Java代码:
public class StringConcateTest {
public static void test(int n) {
long start = System.currentTimeMillis();
String a = "";
for (int i = 0; i < n; i++) {
a = a.concat(String.valueOf(i));
}
long end = System.currentTimeMillis();
System.out.println(a.length() + ", time:" + (end - start));
}
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
test(1000 * 100);
}
}
Run Code Online (Sandbox Code Playgroud)
} …
我检查了guava-libraries并试图用"mvn compile"构建它.
一个神秘的错误突然出现,我找不到解决方案.但"mvn package"或"mvn install"成功没有任何错误.
"编译"不是guava库的有效maven生命周期吗?
核心错误消息在下面供您参考.在此先感谢您的帮助.
[INFO] Unpacking /home/xxx/guava-libraries/guava/target/classes to /home/xxx/guava-libraries/guava-gwt/target/guava-sources with includes "" and excludes "META-INF/MANIFEST.MF"
org.codehaus.plexus.archiver.ArchiverException: The source must not be a directory.
at org.codehaus.plexus.archiver.AbstractUnArchiver.validate(AbstractUnArchiver.java:185)
at org.codehaus.plexus.archiver.AbstractUnArchiver.extract(AbstractUnArchiver.java:118)
at org.apache.maven.plugin.dependency.AbstractDependencyMojo.unpack(AbstractDependencyMojo.java:258)
Run Code Online (Sandbox Code Playgroud)
注意:错误消息中的路径是正确的.