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:

Fungsi Deskripsi Jenis nilai yang ditampilkan Ketersediaan
round() Mengonversi nilai input menjadi nilai floating point, lalu menjalankan operasi standar Operasi matematika round(). Bilangan Bulat Versi 1
floor() Melakukan operasi matematika floor() standar. Float Versi 1
ceil() Melakukan operasi matematika ceil() standar. Float Versi 1
fract() Menampilkan bagian pecahan dari nilai input; yaitu, bagian dari nilai floating point yang muncul di sebelah kanan titik desimal. Float Versi 1
sin() Melakukan operasi trigonometri sin() standar. Float Versi 1
cos() Melakukan operasi trigonometri cos() standar. Float Versi 1
tan() Melakukan operasi trigonometri tan() standar. Float Versi 1
asin() Melakukan operasi trigonometri asin() standar. Pengembalian nilai selalu berada dalam rentang $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Float Versi 1
acos() Melakukan operasi trigonometri acos() standar. URL yang dikembalikan nilai selalu berada di kisaran $ [0.0, \pi] $. Float Versi 1
atan() Melakukan operasi trigonometri atan() standar. Pengembalian nilai selalu berada dalam rentang $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Float Versi 1
abs() Mengonversi nilai input menjadi nilai floating point, lalu menjalankan operasi standar Operasi matematika abs(). Float Versi 1
clamp(,,) Mengonversi nilai input menjadi nilai floating point, lalu melakukan clamp() Operasi Jetpack agar sesuai dengan nilai pertama dalam rentang yang ditentukan oleh nilai kedua dan ketiga. Float Versi 1
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.
Float Versi 1
log() Melakukan operasi matematika log() basis-$ e $ standar. Float Versi 1
log2() Menyimulasikan logaritma basis-2. Nilai ini dihitung dengan membagi basis-10 log() dari nilai input) dengan logaritma basis-10 sebesar $ 2 $. Float Versi 1
log10() Melakukan operasi matematika log() basis-10 standar. Float Versi 1
sqrt() Melakukan operasi matematika sqrt() standar. Float Versi 1
cbrt() Melakukan operasi matematika cbrt() standar. Float Versi 1
exp() Melakukan operasi matematika exp() standar. Float Versi 1
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. Float Versi 1
deg() Melakukan operasi matematika toDegrees() standar. $ \frac{\pi}{2} $ didefinisikan sebagai 90 derajat, dan $ \pi $ didefinisikan sebagai 180 derajat. Float Versi 1
rad() Melakukan operasi matematika toRadians() standar. 90 derajat didefinisikan sebagai $ \frac{\pi}{2} $, dan 180 derajat didefinisikan sebagai $ \pi $. Float Versi 1
pow(,) Melakukan operasi matematika pow() standar. Nilai output selalu berupa bilangan floating point. Float Versi 1
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.
String Versi 1
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 dari EE, MMM d, yyyy h:mm a menghasilkan output berikut: Tue, Mar 14, 2023 1:59 PM

String Versi 1
icuText(,)

Mengonversi string format tanggal input argumen pertama menjadi pola yang cocok dengan format lokalitas yang diharapkan. Argumen kedua adalah string stempel waktu dalam milidetik.

Jika elemen PartText induk menyertakan elemen Localization, format lokalitas tersebut akan digunakan. Jika tidak, lokalitas perangkat Wear OS saat ini akan digunakan.

String Versi 2
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 pada pukul 13.59, nilai input yyyy MMM d EE a h:mm menghasilkan hal berikut output: Tue, Mar 14, 2023, 1:59 PM

String Versi 1
icuBestText(,)

Mengonversi argumen pertama string format tanggal input ke waktu saat ini yang polanya cocok dengan format yang diharapkan. Argumen kedua adalah string stempel waktu dalam milidetik.

Jika elemen PartText induk menyertakan elemen Localization, format lokalitas tersebut akan digunakan. Jika tidak, lokalitas perangkat Wear OS saat ini akan digunakan.

String Versi 2
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
String Versi 1
textLength()

Menghitung panjang string input.

Contoh:
  • textLength("") adalah 0
  • textLength("abcdef") adalah 6
String Versi 1

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.