Funciones del lenguaje que deberías conocer desde el día 1

Esta es la traducción del artículo original.

Aquí tienes una divertida prueba para ver cómo de bien conoces ObjectScript.

¿Cuál será el resultado de cada una de las siguientes sentencias?

write 5 * 10 + 1

write 1 + 5 * 10

write 1 + 0 / 10

write 0 && 0 = 0

write 0 = 0 && 0

write 1 && 1 = 1

write 1 = 1 && 1

write 2 && 2 = 2

write 2 = 2 && 2

write "1 APPLE" + "2 BANANAS"

write "-1" + "1-2"

write +"+-+-+-5"

write "1D7P"-1

write "1E6F"-1

write 0 = "FOO"

write 0 = +"FOO"

write 0 = ''"FOO"

write "10X" - " 5" - "5"

write "10-5"

write +"10-5"

write @"10-5"

write 5_"1"-1

write "5"-1_"1"

write 10 + 10 > 21 + 1

Mira más abajo para ver cuántas acertaste...

   \/

   \/

   \/

   \/

   \/

   \/

   \/

   \/

   \/

   \/

   \/

   \/

>write 5 * 10 + 1
51
 
>write 1 + 5 * 10
60

>write 1 + 0 / 10
.1
 
>write 0 && 0 = 0
1
 
>write 0 = 0 && 0
0
 
>write 1 && 1 = 1
1
 
>write 1 = 1 && 1
1
 
>write 2 && 2 = 2
0
 
>write 2 = 2 && 2
1
 
>write "1 APPLE" + "2 BANANAS"
3
 
>write "-1" + "1-2"
0
 
>write +"+-+-+-5"
-5
 
>write "1D7P"-1
0
 
>write "1E6F"-1
999999
 
>write 0 = "FOO"
0
 
>write 0 = +"FOO"
1
 
>write 0 = ''"FOO"
1
 
>write "10X" - " 5" - "5"
5
 
>write "10-5"
10-5

>write +"10-5"
10
 
>write @"10-5"
5

>write 5_"1"-1
50

>write "5"-1_"1"
41

>write 10 + 10 > 21 + 1
1

Aquí están sucediendo un par de cosas que es importante entender, de lo contrario te parecerá que tu lógica no es consistente.

La primera es que ObjectScript implementa una precedencia estricta de operadores, de izquierda a derecha, lo cual significa que ObjectScript se comportará de una manera completamente diferente a la mayoría de otros lenguajes que hayas podido utilizar.

La segunda es la transformación automatizada de las cadenas a números, que puede ser útil, pero que debes tener en cuenta para no cometer errores. También he visto algunas ideas geniales y locas que se aprovechan de esta opción, pero lo mejor es que te mantengas alejado de hacer cualquier cosa que parezca demasiado “inteligente”, ya que esto podría conducir a que el código sea ilegible.

La precedencia y la transformación cadena-número son los puntos principales aquí, y si eres nuevo en el lenguaje, asegúrate de que conoces bien cómo utilizarlos. Para obtener información más detallada, puedes consultar esta documentación:

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCOS_operators