Меню
Контакты
109147, Москва, ул.Воронцовская, 35Б, корп.2 офис.11, 4 этаж
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
109147, Москва, ул.Воронцовская, 35Б, корп.2 офис.11, 4 этаж
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Как складывать переменные различных типов с помощью Mikrotik Router OS

 04 Ноя 2011    MikroTik, Практика и программирование MikroTik

Как Вы, наверное, знаете, в языках программирования не допускается складывать переменные разных типов.

Рассмотрим пример:

 

Создаем переменные в Python

Рис.1. Создаем переменные в Python.

 

В языке программирования Python создадим две переменные: а и b. Переменная а равна 1 (целое число), а переменная b равна '1' (строка).

При помощи оператора print type(), выведем тип двух переменных.

В результате мы смогли убедиться, что переменная a имеет тип int, а переменная b - тип str. Попытаемся сложить эти переменные.

 

Сложение разнотипных переменных Python

Рис.2. Сложение разнотипных переменных в Python.

 

c = a + b

В результате сложения переменных разного типа произошла ошибка.

 

Python изменяем тип переменных

Рис.3. Изменяем тип переменных в Python.

 

Для того, чтобы выполнить сложение переменных разного типа, необходимо привести обе переменные к общему типу.

С помощью действия int(b) мы изменили тип переменной b из str на int и успешно выполнили сложение.

Посмотрим, как обстоят дела со сложением переменных различного типа в Mikrotik Router OS.

 

Mikrotik Router OS сложение разнотипных переменных

Рис.4. Сложение разнотипных переменных Mikrotik Router OS.

 

:local a "1"; :local b 1; :local c ($a+$b); :put $c;

:local a "1"; - создали переменную a и присвоили ей строку "1";

:local b 1; - создали переменную b и присвоили ей целое число 1;

:local c ($a+$b);  - выполняем сложение переменных разного типа, результат заносим в переменную с;

:put $c; - выводим значение переменной c;

В результате сложения переменных разного типа не произошло ошибки.

 

Mikrotik Router OS определение типов переменных

Рис.5. Определение типов переменных в Mikrotik Router OS.

 

:local a "zzz"; :local b 1; :local c ($a+$b); :put [:typeof $a]; :put [:typeof $b]; :put [:typeof $c];

Выполним определение типов переменных для Mikrotik Router OS. Как мы видим, действительно было выполнено сложение переменной типа str с типом num и в результате сложения получили переменную типа num. Видимо, если выполняется сложение различных типов, Mikrotik Router OS самостоятельно изменяет тип переменной, и, если это ему удается, то операция сложения выполняется успешно.

 

Mikrotik Router OS сложение переменных с различными типами

Рис.6. Ошибка в Mikrotik Router OS.

 

Если невозможно изменить тип переменной, произойдет ошибка.

 

Евгений Рудченко специально для ASP24.