Wyrażenie arytmetyczne

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

Wprowadzona w Wear OS 4.

Przykład

Przykładowe wyrażenie do obracania 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)

...odpowiada poniższemu wyrażeniu matematycznemu, gdzie $\theta_x $ oznacza kąt przyspieszenia we kierunku $ x $:

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

Funkcje

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

Funkcja Opis Typ zwrotu Dostępność
round() Konwertuje wartość wejściową na wartość zmiennoprzecinkową, a następnie wykonuje standardową operację matematyczną 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ęść wartości zmiennoprzecinkowej, która jest wyświetlana po prawej stronie przecinka 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(). Zwracana wartość zawsze mieści się w zakresie $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Pływające Wersja 1
acos() Wykonuje standardową operację trygonometryczną acos(). Zwracana wartość zawsze mieści się w zakresie $ [0,0, \pi] $. Pływające Wersja 1
atan() Wykonuje standardową operację trygonometryczną atan(). Zwracana wartość zawsze mieści się 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 standardową operację matematyczną abs(). Pływające Wersja 1
clamp(,,) Konwertuje wartości wejściowe na wartości zmiennoprzecinkowe, a następnie wykonuje operację Jetpack: clamp(), aby dopasować pierwszą wartość do zakresu zdefiniowanego przez drugą i trzecią wartość. Pływające Wersja 1
rand(,) Generuje losową wartość zmiennoprzecinkową, która jednocześnie spełnia te warunki:
  • Większe lub równe pierwszej wartości.
  • Mniejsze lub równe drugiej wartości.
Zakładamy, że pierwsza wartość jest mniejsza lub równa drugiej wartości.
Pływające Wersja 1
log() Wykonuje standardowe działanie matematyczne base-$ e $ log(). Pływające Wersja 1
log2() Symuluje logarytm o podstawie 2. Tę wartość oblicza się, dzieląc log() wartości wejściowej o podstawie 10 przez logarytm dziesiętny równy 2 USD. Pływające Wersja 1
log10() Wykonuje standardowe działanie matematyczne log() o podstawie 10. 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() Wywołuje bezpośrednio działanie matematyczne expm1(), jeśli wartość wejściowa wynosi 1 USD. W przypadku dowolnej innej wartości wejściowej symuluje funkcję, wykonując standardowe działanie matematyczne exp(), a następnie odejmując 1. Pływające Wersja 1
deg() Wykonuje standardowe działanie matematyczne toDegrees(). $ \frac{\pi}{2} $ oznacza 90 stopni, a $ \pi $ – 180 stopni. Pływające Wersja 1
rad() Wykonuje standardowe działanie matematyczne toRadians(). 90 stopni to $ \frac{\pi}{2} $, a 180 stopni – $ \pi $. Pływające Wersja 1
pow(,) Wykonuje standardowe działanie matematyczne pow(). Wartość wyjściowa zawsze jest 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ę.
  • , – reprezentuje separator przecinków w dużych liczbach.
  • . – 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żywany jest bieżący język 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 zwróci następujące dane wyjściowe: Tue, Mar 14, 2023 1:59 PM

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

Konwertuje pierwszy argument ciąg tekstowy formatu daty na wzorzec zgodny z oczekiwanym formatem 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żywany jest bieżący język urządzenia z Wear OS.

Ciąg znaków Wersja 2
icuBestText()

Konwertuje wejściowy format daty na bieżący format daty, którego wzór jest zgodny z oczekiwanym formatem. Jeśli nadrzędny element PartText zawiera element Localization, używany jest format tego języka. W przeciwnym razie używany jest bieżący język urządzenia z Wear OS.

Jeśli na przykład urządzenie będzie używane w Stanach Zjednoczonych 14 marca 2023 roku o 13:59, wartość wejściowa yyyy MMM d EE a h:mm zwróci takie dane wyjściowe: Tue, Mar 14, 2023, 1:59 PM

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

Konwertuje pierwszy argument wejściowy ciąg formatu daty na bieżący czas, którego wzór jest zgodny z oczekiwanym formatem. 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żywany jest bieżący język 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 oparty na 0 w pierwszej wartości, od której powinien zaczynać się podłańcuch. Trzecia wartość wskazuje indeks zaczynający się od 0 w pierwszej wartości, w której powinno zostać zatrzymane wyodrębnianie podłańcucha („od drugiej wartości do trzeciej wartości (ale bez niej”).

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 ciągów:

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

Podział 2 wartości całkowitych lub zmiennoprzecinkowych.

Jeśli po podzieleniu 2 liczb całkowitych powstanie wartość niecałkowita, w wyniku zmiennoprzecinkowym zostanie zachowana część dziesiętna. Na przykład $ \frac{1}{2} = 0.5 $.

Dodatkowo wyrażenie $ \frac{x}{0} $ jest obliczane jako 0, gdzie $ x $ to dowolna liczba całkowita.

%

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

Jeśli oba operandy są liczbami całkowitymi, wynik jest resztą z dzielenia 2 wartości. Na przykład 19 PLN \bmod 7 = 5 USD.

Jeśli co najmniej 1 operand jest liczbą zmiennoprzecinkową, wynik jest liczbą zmiennoprzecinkową reszty, na przykład: 19,0 USD \bmod 7 = 5,0 USD.

~

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

  • ~1 kosztuje -2 USD
  • ~0 kosztuje -1 USD
!

Operator logiczny „nie”, który obsługuje podwójne wartości ujemne. Kilka przykładów:

  • !2 USD wynosi false
  • $ !!0 $ to true
|

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

  • 1 zł | 0 = 1 zł
  • 1 zł | 2 | 4 = 7 zł
||
Operator logiczny „lub”.
&
Operator bitowy „and”. Obsługuje dokładnie 2 wartości wejściowe.
&&
Operator logiczny „and”.
(
Nawias otwierający. Służy do zmiany standardowej kolejności działań, w której mnożenie i dzielenie mają zwykle wyższy priorytet niż dodawanie i odejmowanie.
)
Nawias zamknięty. Służy do zmiany standardowej kolejności działań, w której mnożenie i dzielenie mają zwykle wyższy priorytet niż dodawanie i odejmowanie.
<
Operator porównania „mniej niż”. Gdy porównujesz liczbę całkowitą z jej odpowiednikiem w formacie zmiennoprzecinkowym, wynik to false.
<=
Operator porównania „mniejsze lub równe”. Po porównaniu wartości całkowitej z jej odpowiednikiem w postaci zmiennoprzecinkowej wynik wynosi true.
>
Operator porównania „większe niż”. Gdy porównujemy liczbę całkowitą z jej odpowiednikiem w postaci zmiennoprzecinkowej, wynik to false.
>=
Operator porównania „większe niż lub równe”. Po porównaniu wartości całkowitej z jej odpowiednikiem w postaci zmiennoprzecinkowej wynik wynosi true.
?:

Zapewnia obsługę operacji trójwartościowych. 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.

"

Umieszczenie na początku i końcu wartości wskazuje, że format tarczy Watch ma interpretować wartość jako ciąg znaków.

==

Porównaj pod kątem równości. Gdy porównujesz wartość całkowitą z jej odpowiednikiem zmiennoprzecinkowym, wynik to true.

!=

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