|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Некоторые типы являются типами значения. У типов значения есть следующие характеристики:
В настоящий момент единственные типы значения являются Строкой, Целым числом, Числом, Булевым, и Продолжительность. У этих типов есть встроенная поддержка на языке:
Строка, Целое число, Число, Булево, и Продолжительность, обсуждаются в этом разделе.
Строка представляет символьные строки. Значение по умолчанию для Строкового типа является пустой строкой ("").
StringLiteral:
OneStringLiteral
StringLiteral OneStringLiteral
OneStringLiteral:
" DoubleQuoteStringCharactersopt "
' SingleQuoteStringCharactersopt '
DoubleQuoteStringCharacters:
DoubleQuoteStringCharacter
DoubleQuoteStringCharacters DoubleQuoteStringCharacter
DoubleQuoteStringCharacter:
InputCharacter but not ", {, } or \
\ InputCharacter
SingleQuoteStringCharacters:
SingleQuoteStringCharacter
SingleQuoteStringCharacters SingleQuoteStringCharacter
SingleQuoteStringCharacter:
InputCharacter but not ', {, } or \
\ InputCharacter
Литералы заключаются в скобки или в одинарных или в двойных кавычках. Таким образом, двойная кавычка, сопровождаемая последовательностью символов (здесь "последовательность" не обращается к количеству элементов), и заканчивающийся двойной кавычкой. Например:
"brown cow"
Или одинарная кавычка, сопровождаемая последовательностью символов и заканчивающийся одинарной кавычкой. Например:
'This is so %#@*^ exciting!'
Если последовательность символов включает фигурные скобки (' {' или'}',) это - строковое выражение. Любого символа можно оставить с символом наклонной черты влево (' \') - это полезно для включения фигурной скобки, кавычки, и символов наклонной черты влево. Отметьте, что одинарные кавычки могут быть включены в двойные заключенные в кавычки строки без того, чтобы быть оставленным, и визу versa. Например:
"Then she said 'shazam', and abruptly left"
Последовательность символов не должна включать возврат каретки или перевод строки. Две смежных строки автоматически объединяются во время компиляции - это удобно для того, чтобы сделать многократные строки строки. Таким образом:
def greeting = "Hello " 'there'; println( greeting );
напечатает:
Hello there
Когда приложение выводит на экран некоторый текст пользователю, требуется, чтобы текст был на собственном языке пользователя. "Локализация" является механизмом, чтобы быть в состоянии заменить строковый литерал преобразованием, выбранным во времени выполнения.
Если двойной знак хеша ## снабжается префиксом к строковому литералу, JavaFX заменяет строковым литералом с локализованным во времени выполнения, если JavaFX находит соответствующую локализацию в файлах свойств JavaFX на пути к классу. Файл свойств JavaFX содержит локализованные строки для локали как "key" = "value" пары. Локализованные строки ищутся, используя исходные строковые литералы в качестве ключей. Если никакая локализованная строка не находится, исходный строковый литерал используется в качестве значения по умолчанию. Дополнительно, явные ключи могут быть определены с квадратными скобками ([]). Например:
def mon = ##"Monday"; def about = ##[ABOUT]"JavaFX is a cool scripting language!"; println( mon ); println( about );
Предположите, что этот сценарий Foo.fx, и есть файл свойств JavaFX для французского языка Foo_fr.fxproperties, который содержит следующую локализацию:
"Monday" = "Lundi" "ABOUT" = "JavaFX est un langage de script cool !"
Сценарий напечатает:
Lundi JavaFX est un langage de script cool !
во французской локали. Можно также обеспечить, многоуровневые файлы свойств для более прекрасного гранулировали управление. Например, можно обеспечить локализованные тексты, которые являются Францией, определенной в Foo_fr_FR.fxproperties, и сохраните другие французские локализованные тексты, которые являются страной, независимой в Foo_fr.fxproperties. Затем JavaFX ищет соответствующие локализованные тексты, делая попытку следующего поиска нейтрализации во французской Франции (fr_FR) локаль:
Foo_fr_FR.fxproperties Foo_fr.fxproperties (original string)
Для получения дополнительной информации по локали и как файл свойств JavaFX располагается, обратитесь к java.util.Locale и java.util.ResourceBundle классы платформы Java.
Кодирование файла свойств JavaFX UTF-8. Другие кодировки могут быть определены с @charset направляющий. Например:
@charset "ISO-8859-1";
определяется в первой строке файла свойств JavaFX, файл читается в ISO-8859-1 кодирование. Если строковый литерал содержит строковые выражения, соответствующие свойства должны только содержать FORMAT_STRING_LITERAL части строковых выражений, без изогнутых фигурных скобок и частей выражения. Например:
def gCal = new GregorianCalendar(1995, Calendar.MAY, 23);
def bday = ##"The birthday of Duke is {%1$tB gCal} {%2$te gCal}, {%3$tY gCal}.";
Затем файл свойств JavaFX, который содержит локализованный текст для"bday"должен быть похожим (например, для французского языка):
"The birthday of Duke is %1$tB %2$te, %3$tY." = "L'anniversaire du duc est le %2$te %1$tB %3$tY."
Отметьте что позиция тех FORMAT_STRING_LITERAL части (обозначенный [argument_index]$) может измениться в локализованных текстах.
Строковые выражения имеют Строковый тип - см. главу Выражений
IntegerLiteral:
DecimalIntegerLiteral
HexIntegerLiteral
OctalIntegerLiteral
DecimalIntegerLiteral:
0
NonZeroDigit Digitsopt
Digits:
Digit
Digits Digit
Digit:
0
NonZeroDigit
NonZeroDigit: one of
1 2 3 4 5 6 7 8 9
HexIntegerLiteral:
0 x HexDigits
0 X HexDigits
HexDigits:
HexDigit
HexDigit HexDigits
HexDigit: one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
OctalIntegerLiteral:
0 OctalDigits
OctalDigits:
OctalDigit
OctalDigit OctalDigits
OctalDigit: one of
0 1 2 3 4 5 6 7
Целочисленный тип представляет целые числа в диапазоне-2147483648 к 2147483647, включительно. Значение по умолчанию для Целочисленного типа является нулем (0).
Целые числа могут быть представлены в десятичных, восьмеричных, или шестнадцатеричных форматах. Десятичный формат является цифрой 1 - 9, сопровождаемой цифрами в диапазоне 0 до 9, или просто 0 отдельно. Восьмеричный формат является цифрой 0, сопровождаемой цифрами в диапазоне 0 до 7. Шестнадцатеричный формат является цифрой 0 после 'x' или 'X' тогда сопровождаемый цифрами в диапазоне 0 до 9 или через F (верхний регистр или нижний регистр). Они - все допустимые Целочисленные литералы:
145 0 012 0xFF
Тип Числа представляет числа с плавающей точкой.
NumberLiteral:
Digits . Digitsopt ExponentPartopt
. Digits ExponentPartopt
Digits ExponentPartopt
ExponentPart:
ExponentIndicator SignedInteger
ExponentIndicator: one of
e E
SignedInteger:
Signopt Digits
Sign: one of
+ -
Следующее является допустимыми литералами Числа:
12.3 0.629 3.9e4 1.7662E-34
Булев представляет истину и ложь значений.
BooleanLiteral: one of
true false
Эти два, и только, Булевы литералы:
true false
Продолжительность представляет количество времени.