aardio 文档

aardio 范例: 字符串生成器

//字符串生成器
import console; 
import string.builder;

//创建字符串生成器(内部基于动态指针)
var bs = string.builder() //可右键点 string.builder,然后点「跳转到定义」

//设置初始值
bs.assign("  初始值")

for(i=1;100;1){
    bs.append( tostring(i) );//追加字符串
    bs.appendf( "%d",i );
}

//清除两侧空格
bs.trim()

//字符串操作函数
console.log("右侧取3个字符" ,bs.rightString(3) );

//转换为字符串
console.log("转换为字符串" ,tostring(bs) );

console.log("预分配内存大小",bs.capacity())

console.log("实际存储内容大小",bs.size())

//重新调整字符串长度
bs.resize(10)

//长度增加 2 个字节
bs.expand(2)

//释放多余的内存
bs.reserve(0);

//bs对象在不使用时可自动释放,但也可以主动调用free()函数尽量释放不用的内存
bs.free(); //在重新分配内存之前就不能再读写该内存了

if( ! bs.capacity() ){
    //但是重新分配内存又可以用了
    bs.reserve(100);
}

bs += "重新分配内存又可以用了";

console.log(bs)

console.log( bs.str() )

//string.builder 对象可以与结构体、字符串、buffer 等直接连接(其他非 null 类型自动转换为字符串,null 值忽略)
bs += {BYTE x[] ='dbcd\0'}

//bs.write 函数可以写入任意个任意类型的参数,遇 null 值停止写入。
bs.write( "abc",{BYTE x[] ='dbcd\0'},123,true,raw.buffer("buf"));

console.log( bs.toUtf16() )

//在下标中用负数表示尾部倒计数索引(只有 string.build 支持,其他字符串或 buffer 下标中写负数会返回 null 值)
var lastByte = bs[-1];
console.log(lastByte);


console.pause(true);
Markdown 格式