ArithmeticExpression

Kumpulan fungsi dan operasi aritmatika, yang digunakan oleh elemen FormatzTampilan Jam lainnya untuk me-resolve nilai atribut real-time dan efek giroskopik.

Diperkenalkan di Wear OS 4.

Contoh

Contoh ekspresi untuk memutar nilai hingga 5 derajat ke salah satu arah, berdasarkan nilai $ x $ akselerometer perangkat Wear OS:

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

... yang setara dengan ekspresi matematika berikut, dengan $ \theta_x $ merepresentasikan sudut akselerometer dalam arah $ x $-:

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

Fungsi

Format Tampilan Jam mengenali nilai string berikut sebagai fungsi:

round()
Mengonversi nilai input menjadi nilai floating point, lalu melakukan operasi matematika round() standar.
floor()
Melakukan operasi matematika floor() standar.
ceil()
Melakukan operasi matematika ceil() standar.
fract()
Menampilkan bagian pecahan dari nilai input; yaitu bagian dari nilai floating point yang muncul di sebelah kanan titik desimal.
sin()
Melakukan operasi trigonometri sin() standar.
cos()
Melakukan operasi trigonometri cos() standar.
tan()
Melakukan operasi trigonometri tan() standar.
asin()
Melakukan operasi trigonometri asin() standar. Nilai yang ditampilkan selalu berada dalam rentang $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
acos()
Melakukan operasi trigonometri acos() standar. Nilai yang ditampilkan selalu berada dalam rentang $ [0.0, \pi] $.
atan()
Melakukan operasi trigonometri atan() standar. Nilai yang ditampilkan selalu berada dalam rentang $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
abs()
Mengonversi nilai input menjadi nilai floating point, lalu melakukan operasi matematika abs() standar.
clamp(,,)
Mengonversi nilai input menjadi nilai floating point, lalu melakukan operasi Jetpack clamp() agar sesuai dengan nilai pertama dalam rentang yang ditentukan oleh nilai kedua dan ketiga.
rand(,)

Menghasilkan nilai floating point acak yang memenuhi kondisi berikut secara bersamaan:

  • Lebih dari atau sama dengan nilai pertama.
  • Kurang dari atau sama dengan nilai kedua.

Asumsikan bahwa nilai pertama kurang dari atau sama dengan nilai kedua.

log()

Melakukan operasi matematika log() basis-$ e $ standar.

log2()

Menyimulasikan logaritma basis-2. Nilai ini dihitung dengan membagi logaritma basis-10 (log10 dari nilai input) dengan logaritma basis-10 sebesar $ 2 $.

log10()

Melakukan operasi matematika log10 basis-10 standar.

sqrt()

Melakukan operasi matematika sqrt() standar.

cbrt()

Melakukan operasi matematika cbrt() standar.

exp()

Melakukan operasi matematika exp() standar.

expm1()

Memanggil operasi matematika expm1() secara langsung jika nilai inputnya adalah $ 1 $. Untuk nilai input lainnya, simulasikan fungsi dengan melakukan operasi matematika exp() standar, lalu kurangi 1.

deg()

Melakukan operasi matematika toDegrees() standar. $ \frac{\pi}{2} $ didefinisikan sebagai 90 derajat, dan $ \pi $ didefinisikan sebagai 180 derajat.

rad()

Melakukan operasi matematika toRadians() standar. 90 derajat didefinisikan sebagai $ \frac{\pi}{2} $, dan 180 derajat didefinisikan sebagai $ \pi $.

pow(,)

Melakukan operasi matematika pow() standar. Nilai output selalu berupa bilangan floating point.

numberFormat(,)

Menerapkan format angka dalam nilai pertama ke nilai kedua.

Nilai pertama dapat berisi karakter berikut:

  • # -- mewakili digit numerik.
  • , -- mewakili pemisah koma dalam jumlah besar.
  • . -- mewakili titik desimal.
icuText()

Mengonversi string format tanggal input ke pola yang cocok dengan format lokalitas yang diharapkan. Jika elemen PartText induk menyertakan elemen Localization, format lokalitas tersebut akan digunakan. Jika tidak, lokalitas perangkat Wear OS saat ini akan digunakan.

Misalnya, jika perangkat sedang digunakan di Amerika Serikat, nilai input EE, MMM d, yyyy h:mm a akan menghasilkan output berikut: Tue, Mar 14, 2023 1:59 PM

icuBestText()

Mengonversi string format tanggal input ke waktu saat ini yang polanya cocok dengan format yang diharapkan. Jika elemen PartText induk menyertakan elemen Localization, format lokalitas tersebut akan digunakan. Jika tidak, lokalitas perangkat Wear OS saat ini akan digunakan.

Misalnya, jika perangkat digunakan di Amerika Serikat pada 14 Maret 2023 pukul 13.59, nilai input yyyy MMM d EE a h:mm akan menghasilkan output berikut: Tue, Mar 14, 2023, 1:59 PM

subText(,,)

Mengekstrak substring dari nilai pertama. Nilai kedua menunjukkan indeks berbasis 0 ke nilai pertama tempat substring harus dimulai. Nilai ketiga menunjukkan indeks berbasis 0 ke nilai pertama tempat ekstraksi substring harus dihentikan ("dari nilai kedua hingga, tetapi tidak termasuk, nilai ketiga").

Contoh:

  • subText("abc def", 2, 5) adalah c d
  • subText("abc def", 2, 7) adalah c def
textLength()

Menghitung panjang string input.

Operator

Format Tampilan Jam mengenali nilai string berikut sebagai operator:

+
Unary plus, atau penambahan beberapa nilai. Mendukung nilai bilangan bulat dan nilai floating point.
-
Unary minus, atau pengurangan beberapa nilai. Mendukung nilai bilangan bulat dan nilai floating point.
*
Perkalian beberapa nilai bilangan bulat atau nilai floating point.
/

Pembagian 2 nilai bilangan bulat atau nilai floating point.

Jika pembagian 2 bilangan bulat menghasilkan nilai non-bilangan bulat, bagian desimal akan dipertahankan dalam hasil floating point. Misalnya, $ \frac{1}{2} = 0.5 $.

Selain itu, ekspresi $ \frac{x}{0} $ dievaluasi sebagai 0, dengan $ x $ adalah bilangan bulat.

%

Pembagian modular dari 2 nilai bilangan bulat atau nilai floating point.

Jika kedua operand adalah bilangan bulat, hasilnya adalah sisa dari membagi 2 nilai. Misalnya, $ 19 \bmod 7 = 5 $.

Jika setidaknya satu operand adalah bilangan floating point, hasilnya adalah floating point yang setara dengan sisanya; misalnya: $ 19.0 \bmod 7 = 5.0 $.

~

Operator "not" bitwise. Beberapa contoh:

  • ~1 adalah $ -2 $
  • ~0 adalah $ -1 $
!

Operator "not" logis, yang mendukung negatif ganda. Beberapa contoh:

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

Operator "atau" bitwise. Mendukung lebih dari 2 nilai input. Beberapa contoh:

  • $ 1 | 0 = 1 $
  • $ 1 | 2 | 4 = 7 $
||
Operator "atau" logis.
&
Operator "dan" bitwise. Mendukung tepat 2 nilai input.
&&
Operator "dan" logis.
(
Tanda kurung buka. Digunakan untuk mengubah urutan operasi standar, dengan perkalian dan pembagian biasanya lebih diprioritaskan daripada penjumlahan dan pengurangan.
)
Tanda kurung tutup. Digunakan untuk mengubah urutan operasi standar, dengan perkalian dan pembagian biasanya lebih diprioritaskan daripada penjumlahan dan pengurangan.
<
Operator perbandingan "kurang dari". Saat membandingkan nilai bilangan bulat dengan floating point yang setara, hasilnya adalah false.
<=
Operator perbandingan "kurang dari atau sama dengan". Saat membandingkan nilai bilangan bulat dengan floating point yang setara, hasilnya adalah true.
>
Operator perbandingan "lebih dari". Saat membandingkan nilai bilangan bulat dengan floating point yang setara, hasilnya adalah false.
>=
Operator perbandingan "lebih dari atau sama dengan". Saat membandingkan nilai bilangan bulat dengan floating point yang setara, hasilnya adalah true.
? dan :

Memberikan dukungan untuk operasi ternary. Format umumnya adalah sebagai berikut:

condition ? value_if_true : value_if_false

Mendukung operasi ternary bertingkat menggunakan tanda kurung.

,

Memisahkan nilai dalam fungsi yang menggunakan lebih dari 1 argumen.

"

Jika ditempatkan di awal dan akhir nilai, menunjukkan bahwa Format Tampilan Jam harus menafsirkan nilai sebagai string.

==

Membandingkan untuk kesetaraan. Saat membandingkan nilai bilangan bulat dengan floating point yang setara, hasilnya adalah true.

!=

Membandingkan untuk ketidaksetaraan. Saat membandingkan nilai bilangan bulat dengan floating point yang setara, hasilnya adalah false.