scala создать val для внешней области видимости - PullRequest
4 голосов
/ 15 сентября 2011

Рассмотрим следующий объект:

    object A {
        def setX(x:Int) = {
            val x1 = x
        }

        def getx() = x1
    }

Если я создам val x1 внутри setX, это будет метод setX.то, что я действительно хочу сделать, это создать val вне метода и присвоить значение внутри метода .Это невозможно без использования var или есть ли способ сделать это?

Пожалуйста, пришлите мне пример, если можете.

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

Это своего рода разница между val («только для чтения») и var.

Так что нет: невозможно.

Если проблема (не желаемое решение)объясняется больше, могут быть альтернативные подходы.

Счастливое кодирование.

0 голосов
/ 15 сентября 2011

Трудно сказать, чего вы на самом деле хотите достичь, но часто конвертирование вашего setX метода делает свое дело:

   def setX(x:Int) = {
       x
   }

   val x1 = setX(x)

или вы можете создать класс SetOnce, который содержит значение и позволяет установить его ровно один раз ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...