Что означает A в def foldLeft[B](z: B)(op: (B, A) => B): B?

foldLeft и многие другие методы коллекции библиотеки Scala будут иметь сигнатуру метода, подобную этой def foldLeft[B](z: B)(op: (B, A) => B): B.

Я знаю, что параметр типа B означает тип результата бинарного оператора. Но я понятия не имею, что означает параметр типа A, он даже не упоминается в документации. Я в замешательстве!


person Jerry.William.Ho    schedule 21.11.2020    source источник
comment
A — это тип элемента коллекции, для которой вызывается этот foldLeft(). Пример: List(1,2,3).foldLeft(..., A равно Int. Пример: Array('a','b','c').foldLeft(..., A равно Char. Это своего рода молчаливое предположение в документации.   -  person jwvh    schedule 21.11.2020
comment
stackoverflow.com/questions/46835288/   -  person Dmytro Mitin    schedule 21.11.2020


Ответы (1)


foldLeft — это функция для типа коллекции. Итак, A означает тип элемента в коллекции.

Например:

Seq(1, 2, 3).foldLeft[Int](0)((a, b) => a + b)

b - тип Int, значение - элемент 1,2,3

person YouXiang-Wang    schedule 21.11.2020