Имитация C # out и ref в Scala - готовые к использованию функции? - PullRequest
1 голос
/ 12 января 2012

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

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

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

1 Ответ

5 голосов
/ 12 января 2012

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

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

...