Es una colección de funciones y operaciones aritméticas que usan otros elementos de Formato de Caras de Relojes para resolver valores de atributos y efectos giroscópicos en tiempo real.
Se introdujo en Wear OS 4.
Ejemplo
Una expresión de ejemplo para rotar un valor hasta 5 grados en cualquier dirección, según el valor $ x $ del acelerómetro del dispositivo Wear OS:
(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
Eso equivale a la siguiente expresión matemática, donde $ \theta_x $ representa el ángulo de acelerómetro en la dirección $ x $:
Funciones
El Formato de Caras de Relojes reconoce los siguientes valores de cadena como funciones:
Función | Descripción | Tipo de datos que se muestra | Disponibilidad |
---|---|---|---|
round() |
Convierte el valor de entrada en un valor de punto flotante y, luego, realiza el
round() operación matemática.
|
Entero | Versión 1 |
floor() |
Realiza la operación matemática estándar de floor() .
|
Flotante | Versión 1 |
ceil() |
Realiza la operación matemática estándar de ceil() .
|
Flotante | Versión 1 |
fract() |
Muestra la parte fraccionaria del valor de entrada; es decir, la parte del un valor de punto flotante que aparece a la derecha del punto decimal. | Flotante | Versión 1 |
sin() |
Realiza la operación trigonométrica estándar de sin() .
|
Flotante | Versión 1 |
cos() |
Realiza la operación trigonométrica estándar de cos() .
|
Flotante | Versión 1 |
tan() |
Realiza la operación trigonométrica estándar de tan() .
|
Flotante | Versión 1 |
asin() |
Realiza la operación trigonométrica estándar de asin() . El valor devuelto
siempre está en el rango $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
|
Flotante | Versión 1 |
acos() |
Realiza la operación trigonométrica estándar de acos() . El valor devuelto
siempre está en el rango $ [0.0, \pi] $.
|
Flotante | Versión 1 |
atan() |
Realiza la operación trigonométrica estándar de atan() . El valor devuelto
siempre está en el rango $ [-\frac{\pi}{2}, \frac{\pi}{2}] $.
|
Flotante | Versión 1 |
abs() |
Convierte el valor de entrada en un valor de punto flotante y, luego, realiza el
abs() operación matemática.
|
Flotante | Versión 1 |
clamp(,,) |
Convierte los valores de entrada en valores de punto flotante y, luego, realiza la
clamp() Operación de Jetpack para que se ajuste al primer valor en el rango definido por
el segundo y el tercer valor.
|
Flotante | Versión 1 |
rand(,) |
Genera un valor de punto flotante aleatorio que cumple con las siguientes condiciones.
al mismo tiempo:
|
Flotante | Versión 1 |
log() |
Realiza la operación matemática estándar base-$ e $ log() .
|
Flotante | Versión 1 |
log2() |
Simula un logaritmo en base 2. Este valor se calcula dividiendo la base 10
log() del valor de entrada) por el logaritmo en base 10 de $ 2 $.
|
Flotante | Versión 1 |
log10() |
Realiza la operación matemática estándar en base 10 log() .
|
Flotante | Versión 1 |
sqrt() |
Realiza la operación matemática estándar de sqrt() .
|
Flotante | Versión 1 |
cbrt() |
Realiza la operación matemática estándar de cbrt() .
|
Flotante | Versión 1 |
exp() |
Realiza la operación matemática estándar de exp() .
|
Flotante | Versión 1 |
expm1() |
Llama directamente a la operación matemática de expm1() si el valor de entrada es $ 1 $. Para cualquier otro valor de entrada, simula la función mediante la operación matemática estándar de exp() y, luego, resta 1.
|
Flotante | Versión 1 |
deg() |
Realiza la operación matemática estándar de toDegrees() .
$ \frac{\pi}{2} $ se define como 90 grados y $ \pi $ se define como 180 grados.
|
Flotante | Versión 1 |
rad() |
Realiza la operación matemática estándar de toRadians() . 90 grados se define como $ \frac{\pi}{2} $ y 180 grados se define como $ \pi $.
|
Flotante | Versión 1 |
pow(,) |
Realiza la operación matemática estándar de pow() . El valor de salida siempre es un número de punto flotante.
|
Flotante | Versión 1 |
numberFormat(,) |
Aplica el formato de número en el primer valor al segundo valor. El primer valor puede contener los siguientes caracteres:
|
String | Versión 1 |
icuText() |
Convierte la cadena de formato de fecha de entrada en un patrón que coincida con el formato de configuración regional esperado. Si el elemento Por ejemplo, si el dispositivo se usa en Estados Unidos, un valor de entrada
de |
String | Versión 1 |
icuText(,) |
Convierte el primer argumento input date format string en un patrón que coincida con el formato de configuración regional esperado. El segundo argumento es una cadena de marca de tiempo en milisegundos. Si el elemento |
String | Versión 2 |
icuBestText() |
Convierte la cadena de formato de fecha de entrada a la hora actual cuyo patrón coincide con el formato esperado. Si el elemento Por ejemplo, si el dispositivo se usa en Estados Unidos el 14 de marzo de 2023
a las 1:59 p.m., un valor de entrada de |
String | Versión 1 |
icuBestText(,) |
Convierte el primer argumento input date format string a la hora actual cuyo patrón coincide con el formato esperado. El segundo argumento es una cadena de marca de tiempo en milisegundos. Si el elemento |
String | Versión 2 |
subText(,,) |
Extrae una subcadena del primer valor. El segundo valor indica el índice basado en 0 en el primer valor donde debe comenzar la subcadena. El tercer valor indica el índice basado en 0 en el primer valor donde la extracción de subcadena debe detenerse ("desde el segundo valor hasta el tercer valor, pero sin incluirlo"). Ejemplos:
|
String | Versión 1 |
textLength() |
Calcula la longitud de la cadena de entrada. Ejemplos:
|
String | Versión 1 |
Operadores
El Formato de Caras de Relojes reconoce los siguientes valores de cadena como operadores:
+
- Unario más, o bien la adición de varios valores. Admite números enteros y valores de punto flotante.
-
- Unario menos, o bien la resta de varios valores. Admite números enteros y valores de punto flotante.
*
- Multiplicación de varios valores de número entero o de punto flotante.
/
División de 2 valores de número entero o de punto flotante.
Si la división de 2 números enteros da como resultado un valor que no es un número entero, la parte decimal se conserva en el resultado de punto flotante. Por ejemplo, $ \frac{1}{2} = 0.5 $.
Además, la expresión $ \frac{x}{0} $ se evalúa como
0
, donde $ x $ es cualquier número entero.%
División modular de 2 valores de número entero o de punto flotante.
Si ambos operandos son números enteros, el resultado es el de la división de los 2 valores. Por ejemplo, $ 19 \bmod 7 = 5 $.
Si al menos un operando es un número de punto flotante, el resultado es un equivalente de punto flotante del resto; por ejemplo: $ 19.0 \bmod 7 = 5.0 $.
~
Operador "not" a nivel de bits. Varios ejemplos:
~1
es $ -2 $.~0
es $ -1 $.
!
Operador lógico "not", que admite la doble negación. Varios ejemplos:
- $ !2 $ es
false
. - $ !!0 $ es
true
.
|
Operador "or" a nivel de bits. Admite más de 2 valores de entrada. Varios ejemplos:
- $ 1 | 0 = 1 $
- $ 1 | 2 | 4 = 7 $
||
- Operador lógico "or".
&
- Operador "and" a nivel de bits. Admite exactamente 2 valores de entrada.
&&
- Operador lógico "and".
(
- Paréntesis de apertura. Se usa para cambiar el orden estándar de las operaciones, en el que la multiplicación y la división suelen tener prioridad sobre la suma y la resta.
)
- Paréntesis de cierre. Se usa para cambiar el orden estándar de las operaciones, en el que la multiplicación y la división suelen tener prioridad sobre la suma y la resta.
<
- El operador de comparación "menor que". Cuando se compara un valor de número entero con su equivalente de punto flotante, el resultado es
false
. <=
- El operador de comparación "menor o igual que". Cuando se compara un valor de número entero con su equivalente de punto flotante, el resultado es
true
. >
- El operador de comparación "mayor que". Cuando se compara un valor de número entero con su equivalente de punto flotante, el resultado es
false
. >=
- El operador de comparación "mayor o igual que". Cuando se compara un valor de número entero con su equivalente de punto flotante, el resultado es
true
. ?
y:
Proporciona asistencia para operaciones ternarias. El formato general es el siguiente:
condition ? value_if_true : value_if_false
Admite operaciones ternarias anidadas con paréntesis.
,
Separa los valores en las funciones que tienen más de 1 argumento.
"
Cuando se coloca al principio y al final de un valor, indica que el Formato de Caras de Relojes debe interpretar el valor como una cadena.
==
Realiza una comparación de igualdad. Cuando se compara un valor de número entero con su equivalente de punto flotante, el resultado es
true
.!=
Realiza una comparación de desigualdad. Cuando se compara un valor de número entero con su equivalente de punto flotante, el resultado es
false
.
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Diseños y expresiones vinculantes
- Referencia rápida de AGSL
- Capacitación de Kotlin para programadores 2: Conceptos básicos de Kotlin