小编ele*_*ven的帖子

关于Java和Scala中的泛型

我对通用子类型感到困惑.

在Java中,如果type AB泛型类型的子类型C<A>并且C<B>是不变的.例如,ArrayList<Base>不是子类型ArrayList<Derived>.

但是,在Scala中,泛型类型C<A>,C<B>如果type A是子类型,则是协变的B.那么Scala中泛型类的属性是什么,而Java中却没有?

generics scala subtyping

15
推荐指数
1
解决办法
4975
查看次数

如何使用grep命令确定字符串是否包含换行符?

假设我们有变量"test",其中包含换行符,例如\n.如果我使用以下命令:

echo "$test" | grep '\n'
Run Code Online (Sandbox Code Playgroud)

结果不是我所期望的.上面的grep命令只搜索测试字符串是否包含字符'n'而不是换行符,因为'\''转义'n'字符.

我应该如何编写grep命令来搜索特定字符串中的换行符?仅供参考,以下情况也不对.

echo "$test" | grep '^.*$'
Run Code Online (Sandbox Code Playgroud)

unix shell scripting grep

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

Java泛型类中void foo(T y)和<T> void foo(T y)之间的区别

详细解释Java泛型类的以下两个版本之间的差异(如果有)?

class C<T>{
    T x;
    void foo(T y)  { … }
}
Run Code Online (Sandbox Code Playgroud)

class C<T>{
    T x;
    <T> void foo(T y)  { … }
}
Run Code Online (Sandbox Code Playgroud)

还有一个问题:什么可以写在foo()的主体中,取代导致Java编译器接受C的第一个版本但拒绝C的第二个版本的"...".

我很困惑.

java generics object-oriented-analysis

3
推荐指数
1
解决办法
474
查看次数

C++中的模板类

我们有以下类定义

template<typename T>
class Klass {...}
Run Code Online (Sandbox Code Playgroud)

我们还有两个以下的实例

Klass<int> i;
Klass<double> d;
Run Code Online (Sandbox Code Playgroud)

C++编译器生成了多少个Klass方法的副本?有人可以解释一下吗?谢谢!

c++ compiler-construction templates

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