#grails #groovy
#grails #groovy
Вопрос:
Я использую Groovy 1.8.3 (в Grails 2.0). Мне нужно объявить некоторые массивы с плавающей запятой, и я использую стандартный синтаксис Java, например:
float rentVal[] = {1.37f, 1.69f, 2.07f, 2.53f}
Компилятор выдает ошибку, сообщая: ожидая ‘}’, найдено ‘=’
Возможно, потому, что сейчас поздняя ночь (по тихоокеанскому времени) Я здесь что-то путаю. Мой вопрос в том, как правильно сделать это в Groovy.
Спасибо
Ответ №1:
Пробовал это в GroovyConsole:
groovy> def rentVal = [1.37f, 1.69f, 2.07f, 2.53f] as float[]
groovy> rentVal.class
Result: class [F
РЕДАКТИРОВАТЬ, этого достаточно, чтобы сделать это:
float[] a = [1.0f, 2.3f, 3.4f]
Комментарии:
1. Да, я пробовал это в GroovyConsole. Какой результат вы получили?
2. Большое спасибо, я допустил опечатку, то, что вы дали, сработало. Дополнительный вопрос: это ошибка, из-за которой Groovy не допускает здесь стандартный синтаксис Java?
3. Кроме того, вы должны помнить, что массивы в Groovy на самом деле являются списками. Чтобы преобразовать их в примитивные массивы, вы должны использовать
as
оператор.4. Большое спасибо Socha за ссылку, а также за объяснение. Я думал, что Groovy — это чистый надмножество Java (синтаксис), но, видимо, это не так, т. Е. Вы не можете использовать синтаксис Java во всех случаях.
5. @socha23 Массивы не являются списками,
String[] a = [ 'a', 'b', 'c' ]
это совершенно допустимый groovy и даст вам массивString
. Это просто Groovy выдаст вам списки, если вы специально не запрашиваете массив