بیان حسابی

مجموعه ای از توابع و عملیات حسابی که سایر عناصر فرمت Watch Face از آنها برای حل مقادیر مشخصه بلادرنگ و جلوه های ژیروسکوپی استفاده می کنند.

در Wear OS 4 معرفی شد.

مثال

یک عبارت مثال برای چرخش یک مقدار تا 5 درجه در هر جهت، بر اساس مقدار $ x $ شتاب‌سنج دستگاه Wear OS:

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

... که معادل عبارت ریاضی زیر است، که در آن $ \theta_x $ زاویه شتاب سنج را در جهت $ x $ نشان می دهد:

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

توابع

فرمت Watch Face مقادیر رشته زیر را به عنوان توابع شناسایی می کند:

تابع توضیحات نوع برگشت در دسترس بودن
round() مقدار ورودی را به یک مقدار ممیز شناور تبدیل می کند، سپس عملیات ریاضی استاندارد round() را انجام می دهد. عدد صحیح نسخه 1
floor() عملیات ریاضی استاندارد floor() را انجام می دهد. شناور نسخه 1
ceil() عملیات ریاضی استاندارد ceil() را انجام می دهد. شناور نسخه 1
fract() بخش کسری مقدار ورودی را برمی‌گرداند. یعنی بخشی از مقدار ممیز شناور که در سمت راست نقطه اعشار ظاهر می شود. شناور نسخه 1
sin() عملیات مثلثاتی استاندارد sin() را انجام می دهد. شناور نسخه 1
cos() عملیات استاندارد cos() مثلثاتی را انجام می دهد. شناور نسخه 1
tan() عملیات مثلثاتی استاندارد tan() را انجام می دهد. شناور نسخه 1
asin() عملیات استاندارد مثلثاتی asin() را انجام می دهد. مقدار بازگشتی همیشه در محدوده $ [-\frac{\pi}{2}, \frac{\pi}{2}] $ است. شناور نسخه 1
acos() عملیات استاندارد مثلثاتی acos() را انجام می دهد. مقدار بازگشتی همیشه در محدوده $ [0.0, \pi] $ است. شناور نسخه 1
atan() عملیات مثلثاتی استاندارد atan() را انجام می دهد. مقدار بازگشتی همیشه در محدوده $ [-\frac{\pi}{2}, \frac{\pi}{2}] $ است. شناور نسخه 1
abs() مقدار ورودی را به یک مقدار ممیز شناور تبدیل می کند، سپس عملیات ریاضی استاندارد abs() را انجام می دهد. شناور نسخه 1
clamp(,,) مقادیر ورودی را به مقادیر ممیز شناور تبدیل می کند، سپس عملیات clamp() Jetpack را انجام می دهد تا اولین مقدار را در محدوده تعریف شده توسط مقادیر دوم و سوم قرار دهد. شناور نسخه 1
rand(,) یک مقدار ممیز شناور تصادفی ایجاد می کند که شرایط زیر را همزمان برآورده می کند:
  • بزرگتر یا مساوی با مقدار اول.
  • کمتر یا مساوی با مقدار دوم.
فرض می کنیم که مقدار اول کمتر یا مساوی مقدار دوم است.
شناور نسخه 1
log() عملیات ریاضی استاندارد base-$ e $ log() را انجام می دهد. شناور نسخه 1
log2() یک لگاریتم پایه 2 را شبیه سازی می کند. این مقدار با تقسیم log() base-10 مقدار ورودی) بر لگاریتم base-10 2 $ محاسبه می شود. شناور نسخه 1
log10() عملیات ریاضی استاندارد base-10 log() را انجام می دهد. شناور نسخه 1
sqrt() عملیات ریاضی استاندارد sqrt() را انجام می دهد. شناور نسخه 1
cbrt() عملیات ریاضی استاندارد cbrt() را انجام می دهد. شناور نسخه 1
exp() عملیات ریاضی استاندارد exp() را انجام می دهد. شناور نسخه 1
expm1() اگر مقدار ورودی 1 $ باشد، به طور مستقیم عملیات ریاضی expm1() را فراخوانی می کند. برای هر مقدار ورودی دیگر، تابع را با انجام عملیات ریاضی استاندارد exp() و سپس تفریق 1 شبیه سازی می کند. شناور نسخه 1
deg() عملیات ریاضی استاندارد toDegrees() را انجام می دهد. $ \frac{\pi}{2} $ به عنوان 90 درجه و $ \pi $ به عنوان 180 درجه تعریف می شود. شناور نسخه 1
rad() عملیات ریاضی استاندارد toRadians() را انجام می دهد. 90 درجه به عنوان $ \frac{\pi}{2} $ و 180 درجه به عنوان $ \pi $ تعریف می شود. شناور نسخه 1
pow(,) عملیات ریاضی استاندارد pow() را انجام می دهد. مقدار خروجی همیشه یک عدد ممیز شناور است. شناور نسخه 1
numberFormat(,) قالب عددی را در مقدار اول به مقدار دوم اعمال می کند. مقدار اول می تواند شامل کاراکترهای زیر باشد:
  • # -- یک رقم عددی را نشان می دهد.
  • , -- یک جداکننده کاما را در اعداد زیاد نشان می دهد.
  • . -- یک نقطه اعشار را نشان می دهد.
رشته نسخه 1
icuText()

رشته قالب تاریخ ورودی را به الگویی تبدیل می کند که با قالب محلی مورد انتظار مطابقت دارد. اگر عنصر PartText والد شامل یک عنصر Localization باشد، از قالب آن محلی استفاده می‌شود. در غیر این صورت، از محلی فعلی دستگاه Wear OS استفاده می کند.

به عنوان مثال، اگر دستگاه در ایالات متحده استفاده می شود، مقدار ورودی EE, MMM d, yyyy h:mm a خروجی زیر را به دست می دهد: Tue, Mar 14, 2023 1:59 PM

رشته نسخه 1
icuText(,)

اولین رشته قالب تاریخ ورودی آرگومان را به الگویی تبدیل می کند که با قالب محلی مورد انتظار مطابقت دارد. آرگومان دوم یک رشته مهر زمانی در میلی ثانیه است.

اگر عنصر PartText والد شامل یک عنصر Localization باشد، از قالب آن محلی استفاده می‌شود. در غیر این صورت، از محلی فعلی دستگاه Wear OS استفاده می کند.

رشته نسخه 2
icuBestText()

رشته قالب تاریخ ورودی را به زمان فعلی که الگوی آن با قالب مورد انتظار مطابقت دارد تبدیل می کند. اگر عنصر PartText والد شامل یک عنصر Localization باشد، از قالب آن محلی استفاده می‌شود. در غیر این صورت، از محلی فعلی دستگاه Wear OS استفاده می کند.

به عنوان مثال، اگر دستگاه در 14 مارس 2023 در ساعت 1:59 بعد از ظهر در ایالات متحده استفاده می شود، مقدار ورودی yyyy MMM d EE ah:mm خروجی زیر را به دست می دهد: Tue, Mar 14, 2023, 1:59 PM

رشته نسخه 1
icuBestText(,)

اولین رشته قالب تاریخ ورودی آرگومان را به زمان فعلی که الگوی آن با قالب مورد انتظار مطابقت دارد، تبدیل می کند. آرگومان دوم یک رشته مهر زمانی در میلی ثانیه است.

اگر عنصر PartText والد شامل یک عنصر Localization باشد، از قالب آن محلی استفاده می‌شود. در غیر این صورت، از محلی فعلی دستگاه Wear OS استفاده می کند.

رشته نسخه 2
subText(,,)

یک زیر رشته را از مقدار اول استخراج می کند. مقدار دوم نشان دهنده شاخص مبتنی بر 0 در اولین مقدار است که رشته فرعی باید از آنجا شروع شود. مقدار سوم نمایه مبتنی بر 0 را در اولین مقدار نشان می دهد که در آن استخراج زیر رشته باید متوقف شود ("از مقدار دوم تا مقدار سوم، اما شامل آن نمی شود").

مثال ها:
  • subText("abc def", 2, 5) cd است
  • subText("abc def", 2, 7) c def است
رشته نسخه 1
textLength()

طول رشته ورودی را محاسبه می کند.

مثال ها:
  • textLength("") 0 است
  • textLength("abcdef") 6 است
رشته نسخه 1

اپراتورها

فرمت Watch Face مقادیر رشته زیر را به عنوان عملگر تشخیص می دهد:

+
Unary plus یا اضافه کردن چندین مقدار. هم از اعداد صحیح و هم مقادیر ممیز شناور پشتیبانی می کند.
-
منهای Unary یا تفریق چندین مقدار. هم از اعداد صحیح و هم مقادیر ممیز شناور پشتیبانی می کند.
*
ضرب چند عدد صحیح یا ممیز شناور.
/

تقسیم 2 مقدار صحیح یا ممیز شناور.

اگر تقسیم 2 عدد صحیح منجر به یک مقدار غیر صحیح شود، قسمت اعشاری در نتیجه ممیز شناور حفظ می شود. به عنوان مثال، $ \frac{1}{2} = 0.5 $.

علاوه بر این، عبارت $ \frac{x}{0} $ به عنوان 0 ارزیابی می شود که در آن $ x $ هر عدد صحیحی است.

%

تقسیم مدولار 2 مقدار صحیح یا ممیز شناور.

اگر هر دو عملوند اعداد صحیح باشند، نتیجه حاصل از تقسیم 2 مقدار باقیمانده است. به عنوان مثال، $ 19 \bmod 7 = 5 $.

اگر حداقل یک عملوند یک عدد ممیز شناور باشد، نتیجه یک معادل ممیز شناور باقیمانده است. به عنوان مثال: $ 19.0 \bmod 7 = 5.0 $.

~

عملگر بیتی "not". چند مثال:

  • ~1 $ -2 $ است
  • ~0 -1 دلار است
!

عملگر منطقی "not" که از منفی های دوگانه پشتیبانی می کند. چند مثال:

  • $ !2 $ false است
  • $!!0 $ true است
|

عملگر بیتی "یا". پشتیبانی از بیش از 2 مقدار ورودی چند مثال:

  • 1 دلار | 0 = 1 دلار
  • 1 دلار | 2 | 4 = 7 دلار
||
عملگر منطقی "یا".
&
عملگر بیتی "and". دقیقاً از 2 مقدار ورودی پشتیبانی می کند.
&&
عملگر منطقی "و".
(
پرانتز را باز کنید. برای تغییر ترتیب استاندارد عملیات استفاده می شود، جایی که ضرب و تقسیم معمولاً بر جمع و تفریق اولویت دارند.
)
پرانتز بسته برای تغییر ترتیب استاندارد عملیات استفاده می شود، جایی که ضرب و تقسیم معمولاً بر جمع و تفریق اولویت دارند.
<
عملگر مقایسه "کمتر از". هنگام مقایسه یک مقدار صحیح با معادل ممیز شناور آن، نتیجه false است.
<=
عملگر مقایسه "کمتر یا مساوی". هنگام مقایسه یک مقدار صحیح با معادل ممیز شناور آن، نتیجه true است.
>
عملگر مقایسه "بیشتر از". هنگام مقایسه یک مقدار صحیح با معادل ممیز شناور آن، نتیجه false است.
>=
عملگر مقایسه "بیشتر یا مساوی". هنگام مقایسه یک مقدار صحیح با معادل ممیز شناور آن، نتیجه true است.
? و :

پشتیبانی از عملیات سه گانه را فراهم می کند. قالب کلی به شرح زیر است:

condition ? value_if_true : value_if_false

از عملیات سه تایی تو در تو با استفاده از پرانتز پشتیبانی می کند.

,

مقادیر را در توابعی که بیش از 1 آرگومان می گیرند جدا می کند.

"

وقتی در ابتدا و انتهای یک مقدار قرار می گیرد، نشان می دهد که فرمت Watch Face باید مقدار را به عنوان یک رشته تفسیر کند.

==

برای برابری مقایسه کنید هنگام مقایسه یک مقدار صحیح با معادل ممیز شناور آن، نتیجه true است.

!=

برای نابرابری مقایسه کنید هنگام مقایسه یک مقدار صحیح با معادل ممیز شناور آن، نتیجه false است.

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}