文本的转换
2015-10-27 本文已影响63人
MarkRight
问题
如何理解aau中文本与数字的转换,如何方便的转换,应该注意些什么?
探索
aau类似JavaScript,属于弱类型语言,文本在很多时候可能会自动的进行转换,例如
import console
console.log(123+"456")
console.pause()
// out : 123456
123在此刻默认转换为了string,然后与string拼接。
下面的代码也是等效的
console.log(123++"456")
// out : 123456
规则是:
+
在文本对象下是字符串的拼接,在数字情况下是数的加法;
++
操作符是对对象进行字符串的拼接,
下面这个例子可以对比,加深印象:
import console
console.log(type(123++456),123++456)
console.log(type(123+456),123+456)
console.log(type(123+456++7),123+456++7)
console.log(type(123++456+7),123++456+7)
console.pause()
Paste_Image.png
请注意观察区别:
可见,请不要混合使用,及其容易产生意想不到的结果,在纯数字情况下,后面的数是进行加法计算后,再与string连接的。
讨论
- 显示的转换数据:aardio提供三个强制转换动态类型的函数
tostring(v) 转换参数v为字符串,可使用_tostring元方法自定义转换函数。
tonumber(v) 转换参数v为数值,可使用_tonumber元方法自定义转换函数。
topointer(v) 转换参数v为指针,可使用_topointer元方法自定义转换函数。
- 使用++操作符号,强行将number转换为string
import console;
a=10
console.varDump(tostring(a)) //显示转换
console.varDump(a++"") //num转str
console.pause()