Мы уже рассмотрели несколько примеров типов объектов: Address и
Customer .
Встроенные типы String , Number ,
Integer , Boolean и Duration
также являются типами объектов. Эти встроенные типы рассматриваются в этом уроке.
Здесь же объясняются особенности типов Void и null . |
Contents
Вы уже видели много примеров переменных типа String , но давайте более внимательно взглянем на некоторые дополнительные факты.
При объявлении String можно использовать одинарные или двойные кавычки:
var s1 = 'Hello';
var s2 = "Hello";
|
Одинарные и двойные кавычки симметричны: вы можете вставлять одинарные кавычки в двойные и двойные кавычки в одинарные. Нет никакой разницы между строками, заключенными в одинарные и двойные кавычки.
Вы также можете вставлять выражения внутри строки, используя фигурные скобки "{}":
def name = 'Joe';
var s = "Hello {name}"; // s = 'Hello Joe'
|
Вложенные выражения могут содержать в себе строки, заключенные в кавычки, которые, в свою очередь, могут содержать другие вложенные выражения:
def answer = true;
var s = "The answer is {if (answer) "Yes" else "No"}"; // s = 'The answer is Yes'
|
При выполнении компилятор заменит выделенное выше в коде выражение строчкой "Yes", если значение истинно и строчкой "No", если нет.
Чтобы соединить несколько строк, используйте фигурные скобки внутри кавычек:
def one = "This example ";
def two = "joins two strings.";
def three = "{one}{two}"; // join string one and string two
println(three); // 'This example joins two strings.'
|
Number и Integer представляют собой числовые данные, хотя для большинства скриптовых задач, вы, как правило, можете позволить компилятору самому определить правильный тип:
def numOne = 1.0; // compiler will infer Number
def numTwo = 1; // compiler will infer Integer
|
Можно, однако, явно указать тип переменной:
def numOne : Number = 1.0;
def numTwo : Integer = 1;
|
Разница между этими двумя типами состоит в том, что Number содержит числа с плавающей точкой, а Integer только целые числа. Используйте Number только тогда, когда вам действительно необходима точность вычислений с учетом плавающей точки. Во всех других случаях, выбирайте Integer .
Тип Boolean может принимать два значения: true (истина) и false (ложь). Используйте этот тип при установке некоторых внутренних параметров приложения:
или для вычисления значения условного выражения:
if (isAsleep) {
wakeUp();
}
|
Если выражение внутри круглых скобок "()" истинно, то выполняется код внутри фигурных скобок "{}" . Для получения более подробной информации об условных выражениях, смотрите урок Выражения.
Тип Duration содержит какое-то количество фиксированных единиц времени (миллисекунд, секунд, минут или часов).
5ms; // 5 milliseconds
10s; // 10 seconds
30m; // 30 minutes
1h; // 1 hour
|
Временные интервалы записываются с применением литералов времени, например, 5m – это литерал времени, представляющий пять минут. Литералы времени наиболее часто используются в анимации (об анимации вы можете узнать в уроке Creating Animated Objects, который является частью Building GUI Applications with JavaFX).
Void используется, чтобы показать, что функция не возвращает какого-либо значения:
function printMe() : Void {
println("I don't return anything!");
}
|
Это эквивалентно следующему примеру, в котором отсутствует возвращение типа функции:
function printMe() {
println("I don't return anything!");
}
|
В языке JavaFX ключевое слово Void начинается с заглавной V. Примите это к сведению и не путайте с void в языке программирования Java, если вы с ним знакомы.
Примечание: В JavaFX, всё является выражением. Возвращаемый тип второй функции printMe также Void , так как компилятор смог определить ее тип. Вы узнаете больше об этом в уроке Выражения.
Null имеет специальное значение для обозначения отсутствия нормального значения. Null – это не то же самое, что ноль или пустая строка, поэтому сравнение по null это не то же самое, что сравнение по нулю или пустой строке.
null позволяет проводить сравнения. Обычно null используют следующим образом:
function checkArg(arg1: Address) {
if(arg1 == null) {
println("I received a null argument.");
} else {
println("The argument has a value.");
}
}
|
Эта функция принимает один параметр, а затем выполняет простой тест для проверки равно ли его значение null .
|