Извините, если это уже было покрыто. Следующий простой пример динамической типизации и границ типов не работает со списком строк, но отлично работает с классом (scala), содержащим определенную функцию length (). Это ожидаемое поведение или ошибка? Если это ожидаемое поведение, есть ли способ определить границу типа так, чтобы она работала для объектов List of String, а также для списка произвольных объектов scala с длиной (функция 0?
def sumlen[T <: {def length : Int}](l : List[T]) : Int = {
def sl(l : List[T], acc : Int) : Int = l match {
case Nil => acc
case h::t => sl(t, h.length + acc)
}
sl(l, 0)
}
val l1 = List("This", "is", "a", "test")
sumlen(l1)