文本的转换

问题

如何理解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()
文本的转换_第1张图片
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()

你可能感兴趣的:(文本的转换)