| ч25. Аргументы функции | Содержание | ч27. Строки |
Теперь пришло время более подробно рассмотреть различные типы переменных, которые вы можете использовать. Сначала мы рассмотрим числовые типы Vim.
В Vimscript есть два типа числовых переменных: целочисленное число со знаком (32-разрядное ) и числа с плавающей запятой (float).
Числовые форматы
Вы можете задать число несколькими способами. Выполните следующую команду:
:echom 100
Здесь нет сюрпризов - Vim отображает 100. Теперь выполните эту команду:
:echom 0xff
На этот раз отобразится 255. Это потому что вы можете указывать числа в шестнадцатеричной системе счисления, добавляя к ним префикс 0x или 0X. Теперь выполните эту команду:
:echom 010
Вы также можете использовать восьмеричное число, начиная число с 0. Будьте осторожны с этим, потому что легко ошибиться. Попробуйте выполнить следующие команды:
:echom 017
:echom 019
Vim будет печатать 15 для первой команды, потому что 17 в восьмеричном равно 15 в десятичном. Для второй команды Vim обрабатывает ее как десятичное число, даже если оно начинается с a 0, потому что это недопустимое восьмеричное число.
Поскольку Vim (в этом случае) молча делает неправильные вещи, я бы рекомендовал по возможности избегать использования восьмеричных чисел.
Форматы с плавающей запятой
Значения с плавающей точкой также могут быть указаны несколькими способами. Выполните следующую команду:
:echo 100.1
Обратите внимание, что мы используем echo , а не echom. Почему так, мы поговорим об этом, через мгновение.
Vim отобразит 100.1, как мы и ожидали. Вы также можете использовать экспоненциальную нотацию. Выполните эту команду:
:echo 5.45e+3
Vim отображает 5450.0. Также можно использовать отрицательный показатель степени. Выполните эту команду:
:echo 15.45e-2
Vim отобразит 0.1545. [ + ] или [ - ] перед степенью десяти не является обязательным. Если он опущен, то предполагается, что он положительный. Выполните следующую команду:
:echo 15.3e9
Vim отобразит 1.53e10, что эквивалентно. Десятичная точка и число после нее являются обязательными. Запустите следующую команду и убедитесь, что она завершается сбоем:
:echo 5e10
Приведение типов
Когда вы работаете с целочисленным числом и с числом с плавающей точкой, математические операции или операции сравнения Vim преобразует целочисленное число в число с плавающей точкой, в результате чего мы получаем число с плавающей точкой. Выполните следующую команду:
:echo 2 * 2.0
Vim отображает 4.0.
Деление
При делении двух целочисленных чисел остаток отбрасывается. Выполните следующую команду:
:echo 3 / 2
Vim отобразит 1. Если вы хотите, чтобы Vim выполнял деление с плавающей точкой, одно из чисел должно быть с плавающей точкой, что приведет к тому, что второе число также будет преобразовано в число с плавающей точкой. Выполните эту команду:
:echo 3 / 2.0
Vim отобразит 1.5. Тут [ 3 ] принудительно преобразуется в число с плавающей запятой, а затем выполняется обычное деление с плавающей запятой.
Упражнения
Прочти :help Float. Узнай в каких случаях число с плавающей запятой может не работать в Vimscript?
Прочти :help floating-point-precision. Что это может означать, если вы пишете плагин Vim, который работает с числами с плавающей запятой?
| ч25. Аргументы функции | Содержание | ч27. Строки |