print( ... )
支持多个不定参数,每个参数都会调用 tostring 转换为字符串。
print 函数非常特别,它属于内置函数,又不是保留函数,可以自由重写。
但是一般用户代码中不应当重写此函数,应当交由框加或库来管理 print 函数。也不应将 print 赋值到其他变量后再进行调用,因为 print 函数随时可能被改变指向。
aardio 代码在解析模板语法时,将自动调用 print 函数输出数据。在不同类型的应用中,print 可能指向不同的输出函数。例如在 HTTP 服务端中 print 将自动指向 response.write 函数。而在调用 string.loadcode 时 print 将临时指向拼接字符串的代码。
在未调用重写 print 函数的库或函数的默认情况下:
通常情况下,用户应当调用确定的 response.write,console.log 等函数而不是可变的 print 函数。
对于非常简单的控制台示例程序,可以使用 print 函数简化代码。这是因为 print 函数有默认打开控制台以及在退出非界面线程前暂停控制台的功能,可以简化示例代码。
例如:
for(i=1;10;1){
print(i);
}
但是 print 函数并不能支持复杂的控制台功能,而且要考虑 print 函数可能被重写的特性。对于正式开发的控制台程序,仍然应当使用 console 库,例如:
import console;
for(i=1;10;1){
console.log(i);
}
console.pause();
console 库函数有自动打开控制台的功能,但退出线程时必须主动调用 console.pause()
才能暂停控制台。这是因为 console 库在 aardio 中被大量使用,很可能我们在创建线程或子进制时会调用到 console 库,如果默认执行 console.pause()
就可能导致不需要的暂停操作( 同样的原因,我们应当避免在写库时直接调用默认具有暂停控制台功能的 print 函数 )。如果需要 console 库在退出时自动暂停(避免控制台自动关闭)则只要将 import console
改为 import console.int
就可以。
在正式开发的 aardio 程序中,print 函数应当总是被模板语法自动调用,不建议在用户代码中显式调用 print 函数。