Имитация C # out и ref в Scala — готовые к использованию функции?
Вопрос
В ограниченном смысле это очень легко написать out
и ref
занятия самостоятельно, но мой вопрос не в том, как это сделать, а существуют ли какие-то функции (или классы), готовые к использованию?
Самое близкое, что я нашел, это Reference
черта (но это черта).
Мне нужно те, не кортеж, не Опция, и ни то, ни другое не является чистым результатом, потому что только ссылка / вывод делает цепочку ifs элегантной.
Решение
Нет, Scala поддерживает передачу параметров по значению или по имени.Передача параметров по ссылке на самом деле довольно сложна для корректного выполнения в JVM, что, вероятно, является одной из причин, почему ни в одном из популярных языков JVM этого нет.Кроме того, параметры out и ref поощряют программирование через побочный эффект, чего при разработке Scala пытаются избежать везде, где это возможно.
Что касается цепочки if, существует множество способов добиться некоторых эффектов, подобных этому, в Scala.выражения "совпадения" являются наиболее очевидными, и вы также можете изучить монадические композиции, используя Option или Either .