Wyrażenie arytmetyczne

Zbiór funkcji i operacji arytmetycznych, których używają inne elementy formatu tarczy zegarka do rozpoznawania wartości atrybutów w czasie rzeczywistym i efektów żyroskopowych.

Wprowadzona w Wear OS 4.

Przykład

Przykładowe wyrażenie umożliwiające obrót wartości o maksymalnie 5 stopni w dowolnym kierunku na podstawie wartości $ x $ akcelerometru urządzenia z Wear OS:

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

...co jest odpowiednikiem następującego wyrażenia matematycznego, gdzie $\theta_x $ oznacza kąt akcelerometru w kierunku $ x $:

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

Funkcje

Format tarczy zegarka rozpoznaje jako funkcje te wartości w postaci ciągów znaków:

Funkcja Opis Typ zwrotu Dostępność
round() Konwertuje wartość wejściową na wartość zmiennoprzecinkową, a następnie wykonuje standardowe działanie matematyczne round(). Liczba całkowita Wersja 1
floor() Wykonuje standardowe działanie matematyczne floor(). Pływające Wersja 1
ceil() Wykonuje standardowe działanie matematyczne ceil(). Pływające Wersja 1
fract() Zwraca część ułamkową wartości wejściowej, czyli część liczby zmiennoprzecinkowej, która jest widoczna po prawej stronie separatora dziesiętnego. Pływające Wersja 1
sin() Wykonuje standardową operację trygonometryczną sin(). Pływające Wersja 1
cos() Wykonuje standardową operację trygonometryczną cos(). Pływające Wersja 1
tan() Wykonuje standardową operację trygonometryczną tan(). Pływające Wersja 1
asin() Wykonuje standardową operację trygonometryczną asin(). Zwrócona wartość mieści się zawsze w zakresie $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Pływające Wersja 1
acos() Wykonuje standardową operację trygonometryczną acos(). Zwrócona wartość zawsze mieści się w zakresie $ [0.0, \pi] $. Pływające Wersja 1
atan() Wykonuje standardową operację trygonometryczną atan(). Zwrócona wartość mieści się zawsze w zakresie $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Pływające Wersja 1
abs() Konwertuje wartość wejściową na wartość zmiennoprzecinkową, a następnie wykonuje standardowe działanie matematyczne abs(). Pływające Wersja 1
clamp(,,) Konwertuje wartości wejściowe na wartości zmiennoprzecinkowe, a następnie wykonuje operację Jetpack clamp() w celu dopasowania pierwszej wartości w zakresie zdefiniowanym przez wartość drugą i trzecią. Pływające Wersja 1
rand(,) Generuje losową wartość zmiennoprzecinkową, która spełnia jednocześnie te warunki:
  • Większe od pierwszej wartości lub jej równe.
  • Mniejsze lub równe drugiej wartości.
Zakładamy, że pierwsza wartość jest mniejsza od drugiej wartości lub jej równa.
Pływające Wersja 1
log() Wykonuje standardowe działanie matematyczne base-$ e $ log(). Pływające Wersja 1
log2() Symuluje logarytm dziesiętny. Wartość tę oblicza się, dzieląc wynik 10 log() wartości wejściowej przez logarytm dziesiętny równy 2 USD. Pływające Wersja 1
log10() Wykonuje standardowe działanie matematyczne w oparciu o 10-krotność log(). Pływające Wersja 1
sqrt() Wykonuje standardowe działanie matematyczne sqrt(). Pływające Wersja 1
cbrt() Wykonuje standardowe działanie matematyczne cbrt(). Pływające Wersja 1
exp() Wykonuje standardowe działanie matematyczne exp(). Pływające Wersja 1
expm1() Bezpośrednio wywołuje działanie matematyczne expm1(), jeśli wartość wejściowa wynosi 1 USD. W przypadku każdej innej wartości wejściowej symuluje funkcję, wykonując standardowe działanie matematyczne exp(), a potem odejmując 1. Pływające Wersja 1
deg() Wykonuje standardowe działanie matematyczne toDegrees(). $ \frac{\pi}{2} $ to 90 stopni, a $ \pi $ oznacza 180 stopni. Pływające Wersja 1
rad() Wykonuje standardowe działanie matematyczne toRadians(). 90 stopni definiuje się jako $ \frac{\pi}{2} $, a 180 stopni – $ \pi $. Pływające Wersja 1
pow(,) Wykonuje standardowe działanie matematyczne pow(). Wartość wyjściowa jest zawsze liczbą zmiennoprzecinkową. Pływające Wersja 1
numberFormat(,) Stosuje format liczb z pierwszej wartości do drugiej. Pierwsza wartość może zawierać te znaki:
  • # – reprezentuje cyfrę.
  • , – oznacza separator przecinkowy w przypadku dużych liczb.
  • . – oznacza separator dziesiętny.
Ciąg znaków Wersja 1
icuText()

Konwertuje wejściowy ciąg formatu daty na wzorzec zgodny z oczekiwanym formatem języka. Jeśli nadrzędny element PartText zawiera element Localization, używany jest format tego języka. W przeciwnym razie używa bieżących ustawień regionalnych urządzenia z Wear OS.

Jeśli na przykład urządzenie jest używane w Stanach Zjednoczonych, wartość wejściowa EE, MMM d, yyyy h:mm a daje takie dane wyjściowe: Tue, Mar 14, 2023 1:59 PM

Ciąg znaków Wersja 1
icuText(,)

Konwertuje ciąg wejściowy formatu daty pierwszego argumentu na wzorzec pasujący do oczekiwanego formatu języka. Drugi argument to ciąg sygnatury czasowej w milisekundach.

Jeśli nadrzędny element PartText zawiera element Localization, używany jest format tego języka. W przeciwnym razie używa bieżących ustawień regionalnych urządzenia z Wear OS.

Ciąg znaków Wersja 2
icuBestText()

Konwertuje wejściowy ciąg formatu daty na aktualną godzinę, której wzorzec pasuje do oczekiwanego formatu. Jeśli nadrzędny element PartText zawiera element Localization, używany jest format tego języka. W przeciwnym razie używa bieżących ustawień regionalnych urządzenia z Wear OS.

Jeśli na przykład urządzenie jest używane w Stanach Zjednoczonych 14 marca 2023 r. o 13:59, wartość wejściowa yyyy MMM d EE a h:mm zwraca takie dane wyjściowe: Tue, Mar 14, 2023, 1:59 PM

Ciąg znaków Wersja 1
icuBestText(,)

Konwertuje ciąg wejściowy formatu daty pierwszego argumentu na bieżący czas, którego wzorzec pasuje do oczekiwanego formatu. Drugi argument to ciąg sygnatury czasowej w milisekundach.

Jeśli nadrzędny element PartText zawiera element Localization, używany jest format tego języka. W przeciwnym razie używa bieżących ustawień regionalnych urządzenia z Wear OS.

Ciąg znaków Wersja 2
subText(,,)

Wyodrębnia podłańcuch z pierwszej wartości. Druga wartość wskazuje indeks liczony od 0 do pierwszej wartości, w której powinien rozpoczynać się podłańcuch. Trzecia wartość wskazuje indeks od 0 do pierwszej wartości, w której powinno zostać przerwane wyodrębnianie podłańcucha („od drugiej wartości do trzeciej wartości, chociaż nie jest”).

Przykłady:
  • Wydarzenie subText("abc def", 2, 5) zacznie się c d
  • Wydarzenie subText("abc def", 2, 7) zacznie się c def
Ciąg znaków Wersja 1
textLength()

Oblicza długość ciągu wejściowego.

Przykłady:
  • Wydarzenie subText("abc def", 2, 5) zacznie się c d
  • Wydarzenie subText("abc def", 2, 7) zacznie się c def
Ciąg znaków Wersja 1

Operatorzy

Format tarczy zegarka rozpoznaje jako operatory te wartości w postaci ciągów znaków:

+
Jednoargumentowy operator plus lub dodanie wielu wartości. Obsługuje zarówno liczby całkowite, jak i wartości zmiennoprzecinkowe.
-
Jednoargumentowy minus lub odjęcie kilku wartości. Obsługuje zarówno liczby całkowite, jak i wartości zmiennoprzecinkowe.
*
Mnożenie większej liczby wartości całkowitych lub zmiennoprzecinkowych.
/

Dzielenie 2 wartości całkowitych lub liczb zmiennoprzecinkowych.

Jeśli dzielenie przez 2 liczby całkowite daje wartość niebędącą liczbą całkowitą, to część dziesiętna zostaje zachowana w wyniku z liczbą zmiennoprzecinkową. Na przykład $ \frac{1}{2} = 0, 5 $.

Dodatkowo wyrażenie $ \frac{x}{0} $ jest obliczane jako 0, gdzie $ x $ jest dowolną liczbą całkowitą.

%

Modułowy dzielenie 2 wartości całkowitych lub liczb zmiennoprzecinkowych.

Jeśli oba operandy są liczbami całkowitymi, wynikiem dzielenia 2 wartości jest reszta. Na przykład: $ 19 \bmod 7 = 5 $.

Jeśli przynajmniej 1 operand jest liczbą zmiennoprzecinkową, wynik jest zmiennoprzecinkowym odpowiednikiem reszty, np. $19.0 \bmod 7 = 5.0 $.

~

Operator bitowy „not” (nie). Kilka przykładów:

  • ~1 wynosi –2 USD
  • ~0 wynosi –1 USD
!

Logiczny operator „nie”, który obsługuje podwójne wyniki negatywne. Kilka przykładów:

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

Operator bitowy „lub”. Obsługuje więcej niż 2 wartości wejściowe. Kilka przykładów:

  • 1 USD | 0 = 1 USD
  • 1 USD | 2 | 4 = 7 USD
||
Operator logiczny „lub”.
&
Operator bitowy „and”. Obsługuje dokładnie 2 wartości wejściowe.
&&
Operator logiczny „oraz”.
(
Otwórz nawias. Służy do zmiany standardowej kolejności operacji, gdzie mnożenie i dzielenie mają zwykle wyższy priorytet niż dodawanie i odejmowanie.
)
Zamknięty nawias. Służy do zmiany standardowej kolejności operacji, gdzie mnożenie i dzielenie mają zwykle wyższy priorytet niż dodawanie i odejmowanie.
<
Operator porównania „mniej niż”. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik false.
<=
Operator porównania „mniejsze lub równe”. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik true.
>
Operator porównania „większe niż”. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik false.
>=
Operator porównania „większe niż lub równe”. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik true.
?:

Zapewnia obsługę operacji potrójnych. Ogólny format jest następujący:

condition ? value_if_true : value_if_false

Obsługuje zagnieżdżone operacje potrójne za pomocą nawiasów.

,

Rozdziela wartości w funkcjach, które przyjmują więcej niż 1 argument.

"

Umieszczony na początku i na końcu wartości wskazuje, że format tarczy zegarka powinien interpretować ją jako ciąg znaków.

==

Porównaj pod względem równości. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik true.

!=

Porównaj pod kątem nierówności. Gdy porównasz liczbę całkowitą z jej odpowiednikiem zmiennoprzecinkowym, otrzymasz wynik false.