ошибка groovy? — создание инициализированного массива с плавающей запятой?

#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 выдаст вам списки, если вы специально не запрашиваете массив