小编Gra*_*mey的帖子

Ruby中的":*"(冒号星)是什么意思?

查看如何计算数字的阶乘,我遇到了这段代码:

(1..5).inject(:*) || 1 # => 120
Run Code Online (Sandbox Code Playgroud)

什么是(:*) || 1做什么?

它是如何比较这行代码(1..5).inject(1) { |x, y| x * y } # => 120,它使用.inject来实现类似的功能?

ruby

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

在数组中存储多个类型时,创建类型为Object的Array或创建新类是更好的Java实践吗?

假设我有对象类型A,B和C.我想将它们存储在一个数组中.一种方法是这样的:

A a = new A();
B b = new B();
C c = new C();

Object[] array = {a, b, c};
Run Code Online (Sandbox Code Playgroud)

从设计角度来看,这不太理想,因为您现在需要知道数组[0]是A类型,但与Ruby或Python等允许此类事物的语言不同.

也就是说,另一个选择是创建一个自定义类D来保存该信息:

private class D {
    public A myA;
    public B myB;
    public C myC;

    public D(A a, B b, C c) {
       //...
    }
}

D[] otherArray = new D[1];
otherArray[0] = new D(a, b, c);
Run Code Online (Sandbox Code Playgroud)

哪种方法更好?出于设计原因,我可以看到第二种方法的论点(尽管其他语言一直都在讨论这个问题).

从性能的角度来看,第一种方法的必要的向上/向下投影比重复创建新的D对象更昂贵,反之亦然?

java arrays performance

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

标签 统计

arrays ×1

java ×1

performance ×1

ruby ×1