我正在实现一个数据结构,并希望用户能够使用任何类型作为密钥,只要他提供一个合适的密钥类型包装它。我有这个关键类型的特点。这个想法是从基础到键类型进行隐式转换,另一种方式是(实际上)只使用基类型。这种特点如下: trait Key[T] extends Ordered[Key[T]] {
def toBase : T
// Further stuff needed for da
我有类似如下的一类使用内部列表: public class MyList<T> : IEnumerable<T>
{
private List<T> _lstInternal;
public MyList()
{
_lstInternal = new List<T>();
}
public static implicit
任何想法为什么以下不工作? implicit def listExtensions[A](xs : List[A]) = new ListExtensions(xs)
class ListExtensions[A](xs : List[A])
{
def foreach[B](f: (A, Int) => B)
{
var i = 0;
for (e
以下example from 斯卡拉之旅显示了基于类型如何使用隐式提供适当的缺失成员(add和unit)。编译器将在范围内选择正确的隐式对象。该库也使用List.sortBy和Ordering或List.sum和Numeric。 然而是在B类以下使用隐式参数的一个有效/推荐的使用(相对于不使用A类隐含的): class I
class A {
def foo(i:I) { bar(i