M Mobile Shell:Reference:Language:Literals

Материал из mShellWiki
Перейти к: навигация, поиск

Константы (en)

[править заголовок, править ссылку на оригинал, править текст, править список подразделов, править список разделов]

Константы — это конкретные значения, заданные непосредственно в коде. За исключением констант массивов, они фиксированы и не могут изменяться в ходе выполнения скрипта. Константы массивов более сложны и обсуждаются в разделе Массивы (en).

EBNF
__
SimpleLiteral = NumberLiteral | StringLiteral | BooleanLiteral |
  FunctionLiteral | NullLiteral .

Числовые константы (en)

[править заголовок, править ссылку на оригинал, править текст]

Числовая константа — это последовательность цифр с возможным десятичным разделителем (точкой) и возможной десятичной экспонентой. Между цифрами не должно быть промежутков или отделителей порядков:

print 0
→ 0
print 3.1415927
→ 3.1415927
print 6.02214199e+23
→ 6.022142E+23
print 1E-3
→ 0.001

Целые числа могут быть также записаны в шестнадцатеричном виде, если поставить префикс 0x:

print 0xff
→ 255
print 0x1000
→ 4096
EBNF
__
NumberLiteral =
  Digit {Digit} ['.' {Digit}]
    [(E' | 'e') ['-' | '+'] Digit {Digit}] |
  '0x' HexDigit {HexDigit} .
Digit =
  '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' .
HexDigit = Digit | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' |
  'a' | 'b' | 'c' | 'd' | 'e' | 'f' .

Строковые константы (en)

[править заголовок, править ссылку на оригинал, править текст]

Строковая константа — это последовательность символов между одинарными или двойными кавычками.

print 'Hello, world!'
→ Hello, world!
print "That's nice"
→ That's nice

Для возможности генерирования всех символов, используется обратная косая черта \, служащая экраном для следующего символа. Например, если кавычка используется, чтобы ограничивать строковую константу, при появлении внутри строки она должна быть экранирована. Также обратная косая черта сама должна быть экранирована. Что часто наблюдается в именах путей:

print "A quote: \"To be, or not to be...\""
→ A quote: "To be, or not to be..."
print 'That\'s nice'
→ That's nice
print "c:\\system\\apps"
→ c:\system\apps

Есть несколько символов, которые обладают специальным назначением при экранировании:

\fзаполнение формы (ASCII 12)
\nновая строка или заполнение строки (ASCII 10)
\rвозврат каретки (ASCII 13)
\tгоризонтальная табуляция (ASCII 9)
\uшестнадцатибитный юникод UNICODE® (UTF-16) далее
print "Line1\nLine2"
→ Line1
Line2
print "Item1\tItem2"
→ Item1   Item2
print "g\u00e9nial"
→ génial

Максимальная длина строковой константы составляет 256 символов.

EBNF
__
StringLiteral = '"' {Char | EscapeChar | "'"} '"' |
  "'" {Char | EscapeChar | '"'} "'" .
Char = (отображаемый символ ISO-8859-1 кроме ', ", \)
EscapeChar = '\' ('n' | 'r' | 't' | 
  'u' HexDigit HexDigit HexDigit HexDigit | (printable char)) .

Логические константы (en)

[править заголовок, править ссылку на оригинал, править текст]

Не удивительно, что есть всего две логические константы: true и false.

EBNF
__
BooleanLiteral = false | true .

Функциональные константы (en)

[править заголовок, править ссылку на оригинал, править текст]

Функциональная константа — это ссылка на уже определенную функцию. Раздел Ссылки на функции (en) описывает ссылки на функции.

EBNF
__
FunctionLiteral = '&' [ModulePrefix] Identifier .

Константа Null (en)

[править заголовок, править ссылку на оригинал, править текст]

Константа null определяет особенное значение, которое отличается от всех остальных.

EBNF
__
NullLiteral = null .


© 2004-2009 airbit AG, CH-8008 Zürich
перевод от m-shell.ru

Наши друзья
Личные инструменты