Имитация C # out и ref в Scala — готовые к использованию функции?

StackOverflow https://stackoverflow.com/questions/8826898

  •  27-10-2019
  •  | 
  •  

Вопрос

В ограниченном смысле это очень легко написать out и ref занятия самостоятельно, но мой вопрос не в том, как это сделать, а существуют ли какие-то функции (или классы), готовые к использованию?

Самое близкое, что я нашел, это Reference черта (но это черта).

Мне нужно те, не кортеж, не Опция, и ни то, ни другое не является чистым результатом, потому что только ссылка / вывод делает цепочку ifs элегантной.

Это было полезно?

Решение

Нет, Scala поддерживает передачу параметров по значению или по имени.Передача параметров по ссылке на самом деле довольно сложна для корректного выполнения в JVM, что, вероятно, является одной из причин, почему ни в одном из популярных языков JVM этого нет.Кроме того, параметры out и ref поощряют программирование через побочный эффект, чего при разработке Scala пытаются избежать везде, где это возможно.

Что касается цепочки if, существует множество способов добиться некоторых эффектов, подобных этому, в Scala.выражения "совпадения" являются наиболее очевидными, и вы также можете изучить монадические композиции, используя Option или Either .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top