Dart: Up and Running / Dart: Up and Running: Обзор языка. Операторы
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
## Арифметические операторы cartrege 06.07.14 в 21:31 |
|
|
Dart поддерживает стандартные арифметические операторы: cartrege 06.07.14 в 21:32 |
||
|
-- Таблица -- cartrege 06.07.14 в 21:33 |
||
|
Пример: cartrege 06.07.14 в 21:32 |
||
|
assert(2 + 3 == 5); cartrege 06.07.14 в 21:32 |
||
|
print('5/2 = ${5~/2} и остаток ${5%2}'); // 5/2 = 2 и остаток 1 cartrege 06.07.14 в 21:33 |
||
|
Dart также поддерживает префиксные и постфиксные инкременты и декременты: cartrege 06.07.14 в 21:34 |
||
|
-- Таблица -- cartrege 06.07.14 в 21:34 |
||
|
Пример cartrege 06.07.14 в 21:34 |
||
|
a = 0; cartrege 06.07.14 в 21:35 |
||
|
a = 0; cartrege 06.07.14 в 21:36 |
||
|
a = 0; cartrege 06.07.14 в 21:37 |
||
|
a = 0; cartrege 06.07.14 в 21:37 |
||
|
## Операторы отношений cartrege 06.07.14 в 21:37 |
||
|
Для проверки того, что объект **x** и объект **y** представляют одно и то же, используйте оператор **==**. В том случае, если вам нужно узнать, ссылаются ли два объекта на один и тот же объект, то используйте функцию **identical()**. Вот как работает оператор **==**: cartrege 06.07.14 в 21:38 |
||
|
* Если **х** или **y** **null**, тогда возвращается **true**, если оба **null**, и **false**, если **null** только один из них. cartrege 07.07.14 в 02:31 |
||
|
Вот пример использования операторов сравнения: cartrege 07.07.14 в 02:32 |
||
|
## Операторы проверки типа cartrege 07.07.14 в 02:32 |
||
|
Результатом проверки **obj is T** будет **true** в том случае, если **obj** реализует интерфейс, определенный в **T**. Например, **obj is Object** всегда **true**. cartrege 07.07.14 в 02:34 |
||
|
Используйте оператор **as** для приведения объекта к определенному типу. Но вообще, вы должны использовать этот оператор для краткого обозначения проверки типа объекта. Например, посмотрим следующий код: cartrege 08.07.14 в 20:07 |
||
|
if (person is Person) { // Проверка типа cartrege 08.07.14 в 20:08 |
||
|
> **Примечание** cartrege 08.07.14 в 20:09 |
||
|
## Операторы присвоения cartrege 08.07.14 в 20:10 |
||
|
Вы уже видели, как можно переменной присвоить значение с помощью оператора **=**. Также можно использовать составные операторы присвоения, такие как **+=**, которые состоят из какого-то оператора и оператора присвоения. cartrege 08.07.14 в 20:11 |
||
|
Вот как работают составные операторы присвоения: cartrege 08.07.14 в 20:12 |
||
|
Пример ниже использует оба типа присвоения: cartrege 08.07.14 в 20:12 |
||
|
var a = 2; // Присвоение через = cartrege 08.07.14 в 20:13 |
||
|
## Логические операторы cartrege 08.07.14 в 20:15 |
||
|
Вы можете инвертировать или комбинировать логические выражения с помощью логических операторов. cartrege 08.07.14 в 20:16 |
||
|
Пример использования логических операторов: cartrege 08.07.14 в 20:16 |
||
|
if (!done && (col == 0 || col == 3)) { cartrege 08.07.14 в 20:17 |
||
|
## Сдвиговые и побитовые операторы cartrege 08.07.14 в 20:17 |
||
|
В Dart вы можете манипулировать битами чисел. Как правило, побитовые операторы и операторы сдвига используются с целыми числами, как показано в таблице ниже и статье "Bitwise and shift operators". cartrege 08.07.14 в 20:19 |
||
|
Пример использования: cartrege 08.07.14 в 20:20 |
||
|
assert((value & bitmask) == 0x02); // AND cartrege 08.07.14 в 20:20 |
||
|
## Другие операторы cartrege 08.07.14 в 20:20 |
||
|
Осталось несколько операторов, многие из которых вы видели в других примерах. cartrege 08.07.14 в 20:21 |
||
