This is kind of random and probably old news, but I just discovered that strings containing numbers can essentially be used as numbers in choicescript. I was interested in this because I was storing a list of integers as a string (for an equipment system), and I wondered if I would have to create a str_to_int function. Thankfully that’s not necessary.
*temp a 123
*temp b "2"
*set a - b
a: ${a} ${a + b} ${b + a} ${a*b} ${b*a}
This prints a: 121 123 123 242 242
.
*set a "123"
*if (a = 123)
a
*if (1 = "1")
b
This prints a b
, which means that the string "123"
is equal to the number 123
. Interestingly this is also what happens in Javascript. However the previous behavior is different from javascript: "121" + 2
would give "1212"
in js.
“Numeric strings” can also be used as indices:
*temp array_1 1
*temp array_2 2
*temp array_3 3
*temp index "2"
${array[index]}
This prints 2
.
It goes the other way, too. Numbers can be concatenated to strings.
*temp d "abc_"&1
d: ${d}
This prints d: abc_1
.