Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
213 / 202 / 85
Регистрация: 09.05.2012
Сообщений: 494
1

Баг или фича?

21.07.2013, 00:34. Показов 974. Ответов 5
Метки нет (Все метки)

Здраствуйте. Читая главу о локализации книги Гослинга, Арнольда, Холмса "Язык программирования Java 3е издание" (господи, люди, может эта книга носит какое-то сокращенное название среди java-программистов? уж больно неудобно каждый раз перечислять всех авторов(ибо не знаю кто из них круче, Госслинг наверное, но неупомянуть остальных - тоже как-то не гуд) и само название - громадно получается.), наткнулся на пример кода(см. ниже). Вроде бы все нормально. Но подходя к статическому массиву в глаза бросилась она! - запятая после последнего элемента. Снала не поверил. Подумал, что автор немного ошибся(ну с кем не бывает). Но нет! В следующих примерах так же последовали запятые после последнего элемента массива. Я быстренько набрал один из примеров, скомпилировал - все нормально. Я пошел чуть дальше, решил посмотреть, что будет с массивом int x[] = { 10, };. А будет с ним ничего. x.length равно 1. x[0] равно 10. В общем все как положено.
Не то, что бы я придираюсь к языку. Отнюдь, Java мой любимый язык. Мне просто стало интересно, а вдруг какой-то сакральный смысл в себе несет эта запятая(предполагаю, что никакой, но все же)?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.*;
public class GlobalRes extends ListResourceBundle {
   public static final String HELLO = "hello";
   public static final String GOODBYE  = "goodbye";
   
   public Object[][] getContents() {
      return contents;
   }
   public static final Object[][] contents = {
      { GlobalRes.HELLO,     "Здравствуй!" },
      { GlobalRes.GOODBYE,   "До свидания" }, // она самая
   };
}
Добавлено через 3 минуты
Забыл добавить, что гугл ужасно путает java c javascript при гуглении на эту тему.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2013, 00:34
Ответы с готовыми решениями:

Баг или фича
решил проверить на своем VS 2008 присвоение в сравнении написал char buf; char *buf1;...

Баг или фича?
Как известно -1^2=1 и math.pow(-1,2) выдает верный результат, но -1 ** 2 выдает -1

Баг или фича ? =)
Thread threads = new Thread; for (int i = 0; i < threads.Length; i++) {...

Баг или фича?
Всем привет. Вот какая интересная штука происходит с жизненным циклом активити. Если выходить из...

5
2580 / 2253 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
21.07.2013, 01:03 2
думаю что это просто синтаксический подарок от разработчиков компилятора, однако злоупотреблять им я бы не стал, вдруг в следующих версиях его уже не будет
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10912 / 6838 / 1625
Регистрация: 25.07.2009
Сообщений: 12,543
21.07.2013, 01:11 3
lowercase, в одной из книг про perl прям-таки рекомендовали при инициализации массива/хеша после последнего элемента запятую ставить - типа так проще при необходимости ещё элемент туда добавить. Мало того:
Код
[andrew@easybook numbers]$ cat > comma.c
#include <stdio.h>
int main(void) {
    int arr[] = { 1, 2, 3, };
    printf("%d\n", sizeof(arr) / sizeof(*arr));
    return 0;
}
[andrew@easybook numbers]$ gcc -o comma comma.c 
[andrew@easybook numbers]$ ./comma
3
1
2580 / 2253 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
21.07.2013, 02:34 4
хорошо что вы это заметили, я уйму лет писал на перле и java и до сих пор не знал про эту фишку, а оно похоже во всех языках
Python
1
2
3
4
>>> a = [1,2,3,]
>>> a
[1, 2, 3]
>>>
Javascript
1
2
3
var a = [1,2,3,]
a
[1, 2, 3]
0
213 / 202 / 85
Регистрация: 09.05.2012
Сообщений: 494
21.07.2013, 11:51  [ТС] 5
я подобное ранее замечал уже в языке Object Pascal там после последнего параметра функции тоже можно было лишнюю запятую втулить(или даже несколько, точное не помню давно это было) и это никоим образом не влияло на результат выполнения.
0
1184 / 540 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
26.07.2013, 01:14 6
Ну в с и с++ было же, а java сами знаете откуда идеи по поводу синтаксиса черпала
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2013, 01:14

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Баг или фича expr
expr substr &quot;12003456&quot; 3 2 echo $? Когда результирующая строка состоит из нулей, код возврата...

Баг или фича дебаггера?
Делаем библиотеку, например, testlib. Option Public Option Declare test Sub test() Dim a As...

Вирус,баг или фича?
Являюсь счастливым обладателем пиратской Win7 ult 64bit(+активатор). На создание этой темы(и...

Таймеры - баг или фича?
В общем, пробую код,как тут http://iosystm32.ru/for-bikymmirs/27-basic-timers Единственное,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.