@ Сойер, я совсем забыл об этом! Я буду следить за этим вопросом и с нетерпением жду более полных ответов.
юtrait Foo[T]
означаетT
является параметризованным типом. Но иногда я вижуtrait Foo[T1,T2]
, или жеtrait Foo[T1,T2,R]
Я нигде не могу описать значение нескольких типов внутри скобки типов. Не могли бы вы указать мне, как в этом случае используются? Из того, что я размышляю, Foo [T1, T2] просто означает, что он определил два типа параметров, он не должен приниматьT1
и вернутьT2
.
Когда я читаюplayframework Документация сегодня, я снова оказался запутанным по этому вопросу. В документации сказано:
BodyParser [A] - это, по сути, Iteratee [Array [Byte], A], что означает, что он получает куски байтов (до тех пор, пока веб-браузер загружает некоторые данные) и вычисляет значение типа A в результате.
Это объяснение звучит так: второй параметр типа внутри скобки типа - это тип возвращаемого значения.
Я тоже помню чтоtrait Function2 [-T1, -T2, +R] extends AnyRef
означает функцию, которая принимаетT1
а такжеT2
, вернутьR
.
Почему они помещают тип возврата в скобки? Означает ли это, что последний параметр в скобках является типом возвращаемого значения? Или они только что определили новый тип R для возвращаемого типа?