АрифметическоеВыражение

Коллекция арифметических функций и операций, которые другие элементы формата циферблата используют для разрешения значений атрибутов в реальном времени и гироскопических эффектов.

Представлено в Wear OS 4.

Пример

Пример выражения для поворота значения до 5 градусов в любом направлении на основе значения $ x $ акселерометра устройства Wear OS:

(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)

...что эквивалентно следующему математическому выражению, где $\theta_x$ представляет угол акселерометра в направлении $x$:

$$ \frac{5}{90} * max(min(\theta_x, 90), -90) $$

Функции

Формат циферблата распознает следующие строковые значения как функции:

Функция Описание Тип возврата Доступность
round() Преобразует входное значение в значение с плавающей запятой, затем выполняет стандартную математическую операцию round() . Целое число Версия 1
floor() Выполняет стандартную математическую операцию floor() . Плавать Версия 1
ceil() Выполняет стандартную математическую операцию ceil() . Плавать Версия 1
fract() Возвращает дробную часть входного значения; то есть часть значения с плавающей запятой, которая отображается справа от десятичной точки. Плавать Версия 1
sin() Выполняет стандартную тригонометрическую операцию sin() . Плавать Версия 1
cos() Выполняет стандартную тригонометрическую операцию cos() . Плавать Версия 1
tan() Выполняет стандартную тригонометрическую операцию tan() . Плавать Версия 1
asin() Выполняет стандартную тригонометрическую операцию asin() . Возвращаемое значение всегда находится в диапазоне $[-\frac{\pi}{2}, \frac{\pi}{2}]$. Плавать Версия 1
acos() Выполняет стандартную тригонометрическую операцию acos() . Возвращаемое значение всегда находится в диапазоне $[0.0,\pi]$. Плавать Версия 1
atan() Выполняет стандартную тригонометрическую операцию atan() . Возвращаемое значение всегда находится в диапазоне $[-\frac{\pi}{2}, \frac{\pi}{2}]$. Плавать Версия 1
abs() Преобразует входное значение в значение с плавающей запятой, затем выполняет стандартную математическую операцию abs() . Плавать Версия 1
clamp(,,) Преобразует входные значения в значения с плавающей запятой, затем выполняет операцию clamp() Jetpack, чтобы уместить первое значение в диапазоне, определенном вторым и третьим значениями. Плавать Версия 1
rand(,) Генерирует случайное значение с плавающей запятой, которое одновременно удовлетворяет следующим условиям:
  • Больше или равно первому значению.
  • Меньше или равно второму значению.
Предполагается, что первое значение меньше или равно второму значению.
Плавать Версия 1
log() Выполняет стандартную математическую операцию base-$e$ log() . Плавать Версия 1
log2() Имитирует логарифм по основанию 2. Это значение рассчитывается путем деления log() входного значения по основанию 10 на логарифм по основанию 10, равный $2$. Плавать Версия 1
log10() Выполняет стандартную математическую операцию log() по основанию 10. Плавать Версия 1
sqrt() Выполняет стандартную математическую операцию sqrt() . Плавать Версия 1
cbrt() Выполняет стандартную математическую операцию cbrt() . Плавать Версия 1
exp() Выполняет стандартную математическую операцию exp() . Плавать Версия 1
expm1() Непосредственно вызывает математическую операцию expm1() , если входное значение равно $1$. Для любого другого входного значения имитирует функцию, выполняя стандартную математическую операцию exp() , а затем вычитая 1. Плавать Версия 1
deg() Выполняет стандартную математическую операцию toDegrees() . $ \frac{\pi}{2} $ определяется как 90 градусов, а $ \pi $ определяется как 180 градусов. Плавать Версия 1
rad() Выполняет стандартную математическую операцию toRadians() . 90 градусов определяется как $\frac{\pi}{2}$, а 180 градусов определяется как $\pi$. Плавать Версия 1
pow(,) Выполняет стандартную математическую операцию pow() . Выходное значение всегда является числом с плавающей запятой. Плавать Версия 1
numberFormat(,) Применяет числовой формат первого значения ко второму значению. Первое значение может содержать следующие символы:
  • # -- представляет числовую цифру.
  • , -- представляет собой разделитель-запятую в больших числах.
  • . -- представляет десятичную точку.
Нить Версия 1
icuText()

Преобразует строку формата входной даты в шаблон, соответствующий ожидаемому формату языкового стандарта. Если родительский элемент PartText включает элемент Localization , используется формат этой локали. В противном случае используется текущий языковой стандарт устройства Wear OS.

Например, если устройство используется в США, входное значение EE, MMM d, yyyy h:mm a дает следующий результат: Tue, Mar 14, 2023 1:59 PM

Нить Версия 1
icuText(,)

Преобразует строку формата даты ввода первого аргумента в шаблон, соответствующий ожидаемому формату языкового стандарта. Второй аргумент — это строка временной метки в миллисекундах.

Если родительский элемент PartText включает элемент Localization , используется формат этой локали. В противном случае используется текущий языковой стандарт устройства Wear OS.

Нить Версия 2
icuBestText()

Преобразует строку формата входной даты в текущее время, шаблон которого соответствует ожидаемому формату. Если родительский элемент PartText включает элемент Localization , используется формат этой локали. В противном случае используется текущий языковой стандарт устройства Wear OS.

Например, если устройство используется в США 14 марта 2023 г. в 13:59, входное значение yyyy MMM d EE ah:mm дает следующий результат: Tue, Mar 14, 2023, 1:59 PM

Нить Версия 1
icuBestText(,)

Преобразует строку формата даты ввода первого аргумента в текущее время, шаблон которого соответствует ожидаемому формату. Второй аргумент — это строка временной метки в миллисекундах.

Если родительский элемент PartText включает элемент Localization , используется формат этой локали. В противном случае используется текущий языковой стандарт устройства Wear OS.

Нить Версия 2
subText(,,)

Извлекает подстроку из первого значения. Второе значение указывает индекс, отсчитываемый от 0, в первом значении, где должна начинаться подстрока. Третье значение указывает на индекс, отсчитываемый от 0, в первое значение, где извлечение подстроки должно прекратиться («от второго значения до третьего значения, но не включая его»).

Примеры:
  • subText("abc def", 2, 5) — это cd
  • subText("abc def", 2, 7)c def
Нить Версия 1
textLength()

Вычисляет длину входной строки.

Примеры:
  • textLength("") равен 0
  • textLength("abcdef") равен 6
Нить Версия 1

Операторы

Формат циферблата распознает следующие строковые значения как операторы:

+
Унарный плюс или сложение нескольких значений. Поддерживает как целые числа, так и значения с плавающей запятой.
-
Унарный минус или вычитание нескольких значений. Поддерживает как целые числа, так и значения с плавающей запятой.
*
Умножение нескольких целых чисел или значений с плавающей запятой.
/

Деление двух целых чисел или значений с плавающей запятой.

Если в результате деления двух целых чисел получается нецелое значение, десятичная часть сохраняется в результате с плавающей запятой. Например, $\frac{1}{2} = 0,5$.

Кроме того, выражение $\frac{x}{0}$ оценивается как 0 , где $x$ — любое целое число.

%

Модульное деление двух целых чисел или значений с плавающей запятой.

Если оба операнда являются целыми числами, результатом является остаток от деления двух значений. Например, $19\bmod 7 = 5$.

Если хотя бы один операнд является числом с плавающей запятой, результатом является эквивалент остатка с плавающей запятой; например: $19,0\bmod 7 = 5,0$.

~

Побитовый оператор «не». Несколько примеров:

  • ~1 = $-2 $
  • ~0 это $-1$
!

Логический оператор «нет», поддерживающий двойное отрицание. Несколько примеров:

  • $ !2 $ false
  • $ !!0 $ true
|

Побитовый оператор «или». Поддерживает более двух входных значений. Несколько примеров:

  • 1 доллар | 0 = 1$
  • 1 доллар | 2 | 4 = 7$
||
Логический оператор «или».
&
Побитовый оператор «и». Поддерживает ровно 2 входных значения.
&&
Логический оператор «и».
(
Открытая скобка. Используется для изменения стандартного порядка операций, при котором умножение и деление обычно имеют приоритет над сложением и вычитанием.
)
Закрывающая скобка. Используется для изменения стандартного порядка операций, при котором умножение и деление обычно имеют приоритет над сложением и вычитанием.
<
Оператор сравнения «меньше чем». При сравнении целочисленного значения с его эквивалентом с плавающей запятой результатом будет false .
<=
Оператор сравнения «меньше или равно». При сравнении целочисленного значения с его эквивалентом с плавающей запятой результатом будет true .
>
Оператор сравнения «больше чем». При сравнении целочисленного значения с его эквивалентом с плавающей запятой результатом будет false .
>=
Оператор сравнения «больше или равно». При сравнении целочисленного значения с его эквивалентом с плавающей запятой результатом будет true .
? и :

Обеспечивает поддержку троичных операций. Общий формат следующий:

condition ? value_if_true : value_if_false

Поддерживает вложенные тернарные операции с использованием круглых скобок.

,

Разделяет значения в функциях, которые принимают более одного аргумента.

"

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

==

Сравните на равенство. При сравнении целочисленного значения с его эквивалентом с плавающей запятой результатом будет true .

!=

Сравните неравенство. При сравнении целочисленного значения с его эквивалентом с плавающей запятой результатом будет false .

{% дословно %} {% дословно %} {% дословно %} {% дословно %}