Что это называется в Scala? Является ли этот полиморфизм?
Скажем, у меня есть старый метод:
def close(pair: TradingPair, currentDate: LocalDate, startTime: Long): Unit = {
... if (rowsWritten > 0) ZipWriter.compressAndDeleteOriginals(file)
else file.delete()
}
Но я хочу, чтобы это было следующим:
def close(pair: TradingPair, currentDate: LocalDate, startTime: Long, writer: CompressionWriter): Unit = {
... if (rowsWritten > 0) writer.compressAndDeleteOriginals(file)
}
, потому что я ожидаю больше типов сценариев сжатия. Это хороший способ сделать это, чтобы сделать это:
trait CompressionWriter {...}
object ZipWriter extends CompressionWriter {...}
object GZipWriter extends CompressionWriter {...}
Могу ли я использовать тип нового признака в аргументе метода close
?
Является ли этот полиморфизм в Scala?
Да, когда вы определяете вещи, которые имеют общую черту, это один вид полиморфизма, который просто называется полиморфизмом подтипов.
Пример,
метод который принимает значение как параметр,
Другой полиморфизм в scala:
Вы можете изучать неделю 3 курса курдеров (данные и абстракция) для концепции - https://www.coursera.org/learn/progfun1 / главная / неделя / 3