ArithmeticExpression

Tập hợp hàm và phép tính số học mà các phần tử Định dạng mặt đồng hồ (Watch Face Format) khác sử dụng nhằm phân giải các giá trị thuộc tính theo thời gian thực và hiệu ứng con quay hồi chuyển (gyroscopic).

Ra mắt trong Wear OS 4.

Ví dụ

Biểu thức mẫu để xoay giá trị lên đến 5 độ theo một trong hai hướng, dựa trên giá trị $ x $-value của gia tốc kế trên thiết bị Wear OS:

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

...tương đương với biểu thức toán học sau đây, trong đó $\theta_x $ đại diện cho góc gia tốc kế theo hướng $ x $:

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

Hàm

Định dạng mặt đồng hồ nhận dạng các giá trị chuỗi dưới dạng hàm:

round()
Chuyển đổi giá trị đầu vào thành giá trị dấu phẩy động, sau đó thực hiện phép toán round() chuẩn.
floor()
Thực hiện phép toán floor() chuẩn.
ceil()
Thực hiện phép toán ceil() chuẩn.
fract()
Trả về phần thập phân của giá trị đầu vào; tức là phần của giá trị dấu phẩy động xuất hiện ở bên phải dấu thập phân.
sin()
Thực hiện phép toán lượng giác sin() chuẩn.
cos()
Thực hiện phép toán lượng giác cos() chuẩn.
tan()
Thực hiện phép toán lượng giác tan() chuẩn.
asin()
Thực hiện phép toán lượng giác asin() chuẩn. Giá trị được trả về luôn nằm trong khoảng $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
acos()
Thực hiện phép toán lượng giác acos() chuẩn. Giá trị được trả về luôn nằm trong khoảng $ [0.0, \pi] $.
atan()
Thực hiện phép toán lượng giác atan() chuẩn. Giá trị được trả về luôn nằm trong khoảng $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
abs()
Chuyển đổi giá trị đầu vào thành giá trị dấu phẩy động, sau đó thực hiện phép toán abs() chuẩn.
clamp(,,)
Chuyển đổi giá trị đầu vào thành giá trị dấu phẩy động, sau đó thực hiện toán tử Jetpack clamp() phù hợp với giá trị đầu tiên trong phạm vi (do giá trị thứ hai và thứ ba xác định).
rand(,)

Tạo một giá trị dấu phẩy động ngẫu nhiên đáp ứng toàn bộ điều kiện sau đây:

  • Lớn hơn hoặc bằng giá trị đầu tiên.
  • Nhỏ hơn hoặc bằng giá trị thứ hai.

Giả sử giá trị đầu tiên nhỏ hơn hoặc bằng giá trị thứ hai.

log()

Thực hiện phép toán base-$ e $ log() chuẩn.

log2()

Mô phỏng một lôgarit cơ số 2. Giá trị này được tính bằng cách chia lôgarit cơ số 10 (log10 của giá trị đầu vào) cho lôgarit cơ số 10 của $ 2 $.

log10()

Thực hiện phép toán cơ số 10 log10 chuẩn.

sqrt()

Thực hiện phép toán sqrt() chuẩn.

cbrt()

Thực hiện phép toán cbrt() chuẩn.

exp()

Thực hiện phép toán exp() chuẩn.

expm1()

Gọi trực tiếp toán tử expm1() nếu giá trị đầu vào là $ 1 $. Với mọi giá trị đầu vào khác, hãy mô phỏng hàm bằng cách thực hiện phép toán exp() chuẩn, sau đó trừ đi 1.

deg()

Thực hiện phép toán toDegrees() chuẩn. $ \frac{\pi}{2} $ được định nghĩa là 90 độ và $ \pi $ được định nghĩa là 180 độ.

rad()

Thực hiện phép toán toRadians() chuẩn. 90 độ được định nghĩa là $ \frac{\pi}{2} $ và 180 độ được định nghĩa là $ \pi $.

pow(,)

Thực hiện phép toán pow() chuẩn. Giá trị đầu ra luôn là số thực.

numberFormat(,)

Áp dụng định dạng số của giá trị đầu tiên cho giá trị thứ hai.

Giá trị đầu tiên có thể chứa các ký tự sau:

  • # – đại diện cho một chữ số.
  • , – đại diện cho dấu phân tách dấu phẩy trong các số lớn.
  • . – đại diện cho một dấu thập phân.
icuText()

Chuyển đổi chuỗi định dạng ngày được đưa vào thành một mẫu khớp với định dạng ngôn ngữ dự kiến. Nếu phần tử PartText mẹ có phần tử Localization, thì định dạng của ngôn ngữ đó sẽ được sử dụng. Nếu không, hãy sử dụng ngôn ngữ hiện tại của thiết bị Wear OS.

Ví dụ: nếu thiết bị đang được sử dụng ở Hoa Kỳ thì giá trị đầu vào là EE, MMM d, yyyy h:mm a sẽ cho ra kết quả sau: Tue, Mar 14, 2023 1:59 PM

icuBestText()

Chuyển đổi chuỗi định dạng ngày được đưa vào thành thời gian hiện tại có mẫu phù hợp với định dạng dự kiến. Nếu phần tử PartText mẹ có phần tử Localization, thì định dạng của ngôn ngữ đó sẽ được sử dụng. Nếu không, hãy sử dụng ngôn ngữ hiện tại của thiết bị Wear OS.

Ví dụ: nếu thiết bị đang được sử dụng tại Hoa Kỳ lúc 1:59 chiều ngày 14 tháng 3 năm 2023, thì giá trị đầu vào là yyyy MMM d EE a h:mm sẽ cho ra kết quả sau: Tue, Mar 14, 2023, 1:59 PM

subText(,,)

Trích xuất chuỗi con từ giá trị đầu tiên. Giá trị thứ hai chỉ định chỉ số (bắt đầu đếm từ 0) trong giá trị đầu tiên, nơi mà chuỗi con bắt đầu. Giá trị thứ ba chỉ định chỉ số (bắt đầu đếm từ 0) trong giá trị đầu tiên, nơi mà việc trích xuất chuỗi con sẽ kết thúc ("từ giá trị thứ hai cho đến trước giá trị thứ ba").

Ví dụ:

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

Tính toán độ dài của chuỗi nhập.

Toán tử

Định dạng mặt đồng hồ nhận dạng các giá trị chuỗi dưới dạng toán tử:

+
Cộng một ngôi, hoặc nhiều giá trị. Hỗ trợ cả số nguyên và giá trị dấu phẩy động.
-
Trừ một ngôi, hoặc trừ nhiều giá trị. Hỗ trợ cả số nguyên và giá trị dấu phẩy động.
*
Hệ số nhân của nhiều giá trị số nguyên hoặc dấu phẩy động.
/

Phép chia 2 giá trị số nguyên hoặc dấu phẩy động.

Nếu phép chia 2 số nguyên có kết quả không phải là một số nguyên, thì phần thập phân sẽ được giữ nguyên ở kết quả dưới dạng dấu phẩy động. Ví dụ: $ \frac{1}{2} = 0,5 $.

Ngoài ra, biểu thức $ \frac{x}{0} $ được gán kết quả là 0, trong đó $ x $ là bất kỳ số nguyên nào.

%

Phép chia mô-đun của 2 giá trị số nguyên hoặc dấu phẩy động.

Nếu cả hai toán hạng đều là số nguyên, kết quả sẽ là phần dư sau khi chia 2 giá trị đó. Ví dụ: $ 19 \bmod 7 = 5 $.

Nếu ít nhất một toán hạng là một giá trị dấu phẩy động, thì kết quả sẽ là một dấu phẩy động tương đương với số dư; ví dụ: $ 19.0 \bmod 7 = 5,0 $.

~

Toán tử Bitwise "not". Dưới đây là một số ví dụ:

  • ~1 là $ -2 $
  • ~0 là $ -1 $
!

Toán tử logic "not" hỗ trợ phủ định kép Dưới đây là một số ví dụ:

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

Toán tử Bitwise "or". Hỗ trợ nhiều hơn 2 giá trị đầu vào. Dưới đây là một số ví dụ:

  • $ 1 | 0 = 1 $
  • $ 1 | 2 | 4 = 7 $
||
Toán tử logic "or".
&
Toán tử bitwise "or". Hỗ trợ đúng 2 giá trị đầu vào.
&&
Toán tử logic "and".
(
Dấu mở ngoặc Dùng để thay đổi thứ tự chuẩn của các phép tính, trong đó phép nhân và phép chia được ưu tiên hơn phép cộng và phép trừ.
)
Dấu đóng ngoặc Dùng để thay đổi thứ tự chuẩn của các phép tính, trong đó phép nhân và phép chia được ưu tiên hơn phép cộng và phép trừ.
<
Toán tử so sánh "nhỏ hơn". Khi so sánh một giá trị số nguyên với giá trị dấu phẩy động tương đương, kết quả sẽ là false.
<=
Toán tử so sánh "nhỏ hơn hoặc bằng". Khi so sánh một giá trị số nguyên với giá trị dấu phẩy động tương đương, kết quả sẽ là true.
>
Toán tử so sánh "lớn hơn". Khi so sánh một giá trị số nguyên với giá trị dấu phẩy động tương đương, kết quả sẽ là false.
>=
Toán tử so sánh "lớn hơn hoặc bằng". Khi so sánh một giá trị số nguyên với giá trị dấu phẩy động tương đương, kết quả sẽ là true.
?:

Hỗ trợ cho các toán tử 3 ngôi. Định dạng chung như sau:

condition ? value_if_true : value_if_false

Hỗ trợ các toán tử 3 ngôi lồng nhau bằng cách sử dụng dấu ngoặc đơn.

,

Tách các giá trị trong những hàm nhận nhiều hơn 1 đối số.

"

Khi đặt ở đầu và cuối của một giá trị, toán tử này định nghĩa Định dạng mặt đồng hồ của một giá trị là một chuỗi.

==

So sánh bằng. Khi so sánh một giá trị số nguyên với giá trị dấu phẩy động tương đương, kết quả sẽ là true.

!=

So sánh bất đẳng thức. Khi so sánh một giá trị số nguyên với giá trị dấu phẩy động tương đương, kết quả sẽ là false.