AAU

文本的转换

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连接的。


讨论

tostring(v) 转换参数v为字符串,可使用_tostring元方法自定义转换函数。
tonumber(v) 转换参数v为数值,可使用_tonumber元方法自定义转换函数。
topointer(v) 转换参数v为指针,可使用_topointer元方法自定义转换函数。

import console; 
a=10
console.varDump(tostring(a))       //显示转换
console.varDump(a++"")             //num转str
 console.pause()
上一篇下一篇

猜你喜欢

热点阅读