2014-09-12 2 views
1

(. Вопрос Джона Уильямса, с форума Coursera, который я решил поделиться с сообществом, так как я не смог найти это где-нибудь ответил)Каковы правила именования переменных в обработке?

Следующий код работает без ошибок:

int _j = 1; 
//int 2var = 2; 
int var2 = 2; 
int Kvar = 3; // first letter can be uppercase 
int spec$var = 4; 
int com_pound_var = 5; // compounding without camel case 
int com$pound$two = 6; 
int $var = 199; 
println(_j); 
println(var2); 
println(Kvar); 
println(spec$var); 
println(com_pound_var); 
println(com$pound$two); 
println($var); //first character can be special 

Поскольку компилятор принимает _j, Kvar и $var как допустимые имена переменных, ясно, что имена переменных не нужно начинать с буквы нижнего регистра.

Мне не удалось найти правила именования переменных в любом месте ссылки.

Каковы правила именования переменных для языка обработки?

ответ

3

Быстрый ответ: можете начинать с любых букв, знаков подчеркивания и доллара, продолжать буквы, цифры, знаки подчеркивания и доллара. Подробности ниже.


Я также ничего не нашел в ссылке или документации. Однако, проверяя исходный код, я обнаружил, что обработка не является собственным языком, а скорее структурой, в которой вы запускаете некоторые команды. Разница в том, что вы на самом деле пишете другой язык, а обработка просто дает вам некоторые базовые строительные леса, на которых вы строите сверху.

Для некоторых технических подробностей: Обработка компилирует Java-сборку с помощью некоторых флагов, создает виртуальную машину (виртуальная машина Java, не такая же, как полноценная виртуальная машина) и подключается к ней для получения входных и выходных потоков (это почему вы можете взаимодействовать с мышью или получать консольный вывод своей собственной программы в отдельном окне). (Source.)

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

С учетом сказанного, фактические документы, которые отвечают на этот вопрос, это Java Language Specification, что, чтобы упростить все, так близко, как вы можете получить ответ. (Но если вы действительно хотите знать, it's a mess.)

В частности, раздел Identifiers, который я просуммировать ниже:

  • Может начинаться с любой буквы (A-Z, a-z), подчеркивание (_), знак доллара ($), или любой юникода «буква» (с ударением, китайский и т.д. Details.)
  • можно продолжать с любым из указанных выше, а также может продолжать с цифрами (0-9). Может также содержать другие Юникода «письма» (Details.)
  • Может иметь неограниченную длину
  • Не может быть любой Java ключевое слово (list here)
  • не может быть false, true, null
  • Они могут выглядеть так же и до сих пор быть разными, если их коды отличаются (некоторые буквы Юникода выглядят точно так же, как буквы, но разные)

Надеюсь, это поможет!Расследование было забавным.

Смежные вопросы