Найти в Дзене
Vim

VimScript 26 [ Числа ]

Оглавление

| ч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. Строки |