التعبير الحسابي

هي مجموعة من الدوال والعمليات الحسابية التي تستخدمها عناصر "تنسيق خلفية شاشة الساعة" الأخرى لحل قيم السمات في الوقت الفعلي والتأثيرات الجيروسكوبية.

تم طرح هذه الميزة في 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) $$

الدوال

يتعرّف تنسيق خلفية شاشة الساعة على قيم السلسلة التالية كدوال:

round()
لتحويل قيمة الإدخال إلى قيمة نقطة عائمة، ثم تنفيذ عملية round() الحسابية العادية.
floor()
ينفِّذ عملية floor() الرياضية العادية.
ceil()
ينفِّذ عملية ceil() الرياضية العادية.
fract()
لعرض الجزء الكسري من قيمة الإدخال، أي جزء قيمة النقطة العائمة الذي يظهر على يمين النقطة العشرية.
sin()
تنفيذ العملية المثلثية العادية لـ sin().
cos()
تنفيذ العملية المثلثية العادية لـ cos().
tan()
تنفيذ العملية المثلثية العادية لـ tan().
asin()
تنفيذ العملية المثلثية القياسية لـ asin(). وتكون القيمة المعروضة دائمًا ضمن النطاق $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
acos()
تنفيذ العملية المثلثية القياسية لـ acos(). وتكون القيمة المعروضة دائمًا ضمن النطاق $ [0.0, \pi] $.
atan()
تنفيذ العملية المثلثية القياسية لـ atan(). وتكون القيمة المعروضة دائمًا ضمن النطاق $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
abs()
لتحويل قيمة الإدخال إلى قيمة نقطة عائمة، ثم تنفيذ عملية abs() الحسابية العادية.
clamp(,,)
تُحوِّل قيم الإدخال إلى قيم النقطة العائمة، ثم تنفِّذ عملية clamp() Jetpack لاحتواء القيمة الأولى في النطاق المحدد من خلال القيمتين الثانية والثالثة.
rand(,)

تنشئ قيمة نقطة عائمة عشوائية تفي بالشروط التالية في الوقت نفسه:

  • أكبر من القيمة الأولى أو يساويها.
  • أقل من القيمة الثانية أو يساويها.

يفترض أن القيمة الأولى أقل من القيمة الثانية أو تساويها.

log()

لإجراء العملية الحسابية الأساسية لقاعدة $ e $ log().

log2()

يحاكي لوغاريتم الأساس 2. يتم احتساب هذه القيمة من خلال قسمة لوغاريتم الأساس-10 (log10 من قيمة الإدخال) على لوغاريتم الأساس-10 بقيمة 2 دولار أمريكي (أو ما يعادله بالعملة المحلية).

log10()

إجراء العملية الحسابية للأساس 10 القياسي log10.

sqrt()

إجراء العملية الرياضية العادية في sqrt()

cbrt()

إجراء العملية الرياضية العادية في cbrt()

exp()

إجراء العملية الرياضية العادية في exp()

expm1()

يستدعي هذا الإجراء العملية الحسابية لـ expm1() مباشرةً إذا كانت قيمة الإدخال هي $1. بالنسبة إلى أي قيمة إدخال أخرى، تحاكي الدالة عن طريق تنفيذ العملية الحسابية في exp() العادية، ثم طرح 1.

deg()

إجراء العملية الرياضية العادية في toDegrees() $ \frac{\pi}{2} $ هي 90 درجة و $ \pi $ هي 180 درجة.

rad()

إجراء العملية الرياضية العادية في toRadians() و90 درجة يتم تعريفها بأنها $ \frac{\pi}{2} $، و180 درجة بالشكل $ \pi $.

pow(,)

إجراء العملية الرياضية العادية في pow() قيمة الإخراج هي دائمًا رقم نقطة عائمة.

numberFormat(,)

يطبِّق تنسيق الأرقام في القيمة الأولى على القيمة الثانية.

يمكن أن تحتوي القيمة الأولى على الأحرف التالية:

  • # -- يمثل رقمًا عدديًا.
  • , -- تمثل فاصلاً بفواصل بالأعداد الكبيرة.
  • . -- تمثل علامة عشرية.
icuText()

تحوِّل سلسلة تنسيق تاريخ الإدخال إلى نمط يطابق تنسيق اللغة المتوقَّع. إذا كان العنصر الرئيسي PartText يتضمّن عنصر Localization، يتم استخدام تنسيق هذه اللغة. وبخلاف ذلك، يستخدم اللغة الحالية لجهاز Wear OS.

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

icuBestText()

تحوِّل سلسلة تنسيق تاريخ الإدخال إلى الوقت الحالي الذي يتطابق نمطه مع التنسيق المتوقع. إذا كان العنصر الرئيسي PartText يتضمّن عنصر Localization، يتم استخدام تنسيق هذه اللغة. وبخلاف ذلك، يستخدم اللغة الحالية لجهاز Wear OS.

على سبيل المثال، إذا كان يتم استخدام الجهاز في الولايات المتحدة في 14 آذار (مارس) 2023 عند الساعة 1:59 مساءً، تنتج قيمة الإدخال yyyy MMM d EE a h:mm الناتج التالي: Tue, Mar 14, 2023, 1:59 PM

subText(,,)

لاستخراج سلسلة فرعية من القيمة الأولى. تشير القيمة الثانية إلى الفهرس المستند إلى 0 في القيمة الأولى التي يجب أن تبدأ فيها السلسلة الفرعية. تشير القيمة الثالثة إلى الفهرس المستند إلى 0 في القيمة الأولى التي ينبغي أن يتوقف فيها استخراج السلسلة الفرعية ("من القيمة الثانية إلى القيمة الثالثة ولكن بدون تضمينها").

أمثلة:

  • سيُقام subText("abc def", 2, 5) c d
  • سيُقام subText("abc def", 2, 7) c def
textLength()

تحتسب طول سلسلة الإدخال.

عوامل التشغيل

يتعرّف تنسيق خلفية شاشة الساعة على قيم السلسلة التالية كعوامل تشغيل:

+
جمع غير حاد أو جمع قيم متعددة يتيح هذا التنسيق استخدام الأعداد الصحيحة وقيم النقاط العائمة.
-
طرح أو طرح أكثر من قيم متعددة. يتيح هذا التنسيق استخدام الأعداد الصحيحة وقيم النقاط العائمة.
*
ضرب عدة أعداد صحيحة أو قيم نقاط عائمة
/

القسمة على عدد صحيح أو قيم نقطة عائمة

إذا نتج عن قسمة عددين صحيحَين، لا تكون قيمة العدد صحيحًا، يتم الاحتفاظ بالجزء العشري في نتيجة النقطة العائمة. على سبيل المثال، $ \frac{1}{2} = 0.5 دولار.

بالإضافة إلى ذلك، يتم تقييم التعبير $ \frac{x}{0} $ على النحو 0، حيث $ x $ هو أي عدد صحيح.

%

القسمة المعيارية من عددين صحيحين أو قيم نقطة عائمة

إذا كان كلا المعاملين عددين صحيحين، تكون النتيجة هي باقي قسمة القيمتين. على سبيل المثال، $ 19 \bmod 7 = 5 $.

إذا كان هناك معامل واحد على الأقل عبارة عن رقم نقطة عائمة، تكون النتيجة مكافئًا من النقطة العائمة للباقي؛ على سبيل المثال: $ 19.0 \bmod 7 = 5.0 $.

~

استخدام عامل التشغيل "not" على مستوى البت. هناك عدة أمثلة:

  • ~1 هو دولار أمريكي -2 دولار أمريكي
  • ~0 هو دولار أمريكي -1 دولار أمريكي
!

عامل التشغيل "not" المنطقي، الذي يدعم السلبيات المزدوجة. هناك عدة أمثلة:

  • $ !2 $ هو false
  • $ !!0 $ هو true
|

استخدام عامل التشغيل "or" على مستوى البت. إمكانية استخدام أكثر من قيمتَي إدخال هناك عدة أمثلة:

  • دولار أمريكي 1 | 0 = 1 دولار أمريكي
  • دولار أمريكي 1 | 2 | 4 = 7 دولارات أمريكية
||
عامل التشغيل "or" المنطقي
&
عامل التشغيل "and" على مستوى بت. يتوافق مع قيمتَي إدخال بالضبط.
&&
عامل التشغيل "و" المنطقي
(
أقواس مفتوحة. تُستخدم لتغيير ترتيب العمليات القياسي، حيث يكون للضرب والقسمة عادةً الأولوية على الجمع والطرح.
)
أقواس مغلقة. تُستخدم لتغيير ترتيب العمليات القياسي، حيث يكون للضرب والقسمة عادةً الأولوية على الجمع والطرح.
<
عامل تشغيل المقارنة "less من". عند مقارنة قيمة عدد صحيح بمكافئ النقطة العائمة الخاص بها، تكون النتيجة false.
<=
عامل تشغيل المقارنة "أقل من أو يساوي". عند مقارنة قيمة عدد صحيح مع مكافئ النقطة العائمة، تكون النتيجة true.
>
عامل تشغيل المقارنة "أكبر من". عند مقارنة قيمة عدد صحيح مع مكافئ النقطة العائمة، تكون النتيجة false.
>=
عامل تشغيل المقارنة "أكبر من أو يساوي". عند مقارنة قيمة عدد صحيح مع مكافئ النقطة العائمة، تكون النتيجة true.
? و:

يقدّم الدعم للعمليات الثلاثية. في ما يلي التنسيق العام:

condition ? value_if_true : value_if_false

يدعم العمليات الثلاثية المتداخلة باستخدام الأقواس.

,

يفصل القيم في الدوال التي تستخدم أكثر من وسيطة واحدة.

"

عند وضعها في بداية القيمة ونهايتها، يشير ذلك إلى أنّ تنسيق خلفية شاشة الساعة يجب أن يفسّر القيمة كسلسلة.

==

قارن من أجل المساواة. عند مقارنة قيمة عدد صحيح بمكافئ النقطة العائمة، تكون النتيجة true.

!=

قارن لعدم المساواة. عند مقارنة قيمة عدد صحيح بمكافئ النقطة العائمة الخاص بها، تكون النتيجة false.