小编Cup*_*tor的帖子

如何在Scala中进行简单的类型转换?

这应该是一个愚蠢的问题.

scala> val aFloat = 1.5f
aFloat: Float = 1.5
Run Code Online (Sandbox Code Playgroud)

如何以简单的方式将aFloat强制转换为Int?

我已经知道要使用了a.asInstanceOf[Int].但它需要太多的击键.

types casting scala

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

在*C++模板中,::*(范围操作后的星号)是什么意思?

请帮助我理解来自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)

我不熟悉这个代码模式,并有几个问题:

  1. typedef行是什么意思?我不明白Vector2<T>::*
  2. 为什么_v要成为静态成员?它似乎不是跨实例共享的,它不遵循C++ AFAICT中的静态语义.

c++

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

Java和Python之间不可变字符串连接的性能比较

更新:非常感谢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)

} …

python java string performance concatenation

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

如何在guava-libraries项目上运行"mvn compile"后解决错误?

我检查了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)

注意:错误消息中的路径是正确的.

maven guava

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

标签 统计

c++ ×1

casting ×1

concatenation ×1

guava ×1

java ×1

maven ×1

performance ×1

python ×1

scala ×1

string ×1

types ×1