串类型(string, buffer)
string为字符串,buffer解释为缓冲区,他们都是连续存储并且存储内存都是动态分配的。
string
string可以理解为一个连续存放字符的容器,它和buffer的区别是string字符串可能会放在字符串池中,且无法对string[idx]单个字符进行修改
string初始化,以及一些简单的符号运算:
string str = "Hello World"; // 使用双引号,只能包括一行字符串
string str0 = """P // 使用"""P ... """P; 的方式可以定义多行任意格式字符串
Hello World! // 其中P可以为[a-z]和[A-Z],任意字母无差别,但要保证前后一致。
This is my first program,
thank you!
"""P;
string str1 = "Hello", str2 = " World";
string add_str = str1 + str2; // add_str为"Hello World"
printf("%c",add_str[0]); // 输出 H
从设备输入数据
mixed input_string(string prompt = EMPTY_STRING, bool echo = true, int max_size= 4096); // 原型
// 返回值如果是nil表示EOF,数字表示出错,否则就是string
import gs.lang.io
string str = "";
array lines = []; // 行数
int total_size = 0; // 总长度
while (str = input_string("", false, 1024*1024))
{
lines << [str];
total_size += str.length();
}
- string可以通过切片语法获取子串。
string str = "hello";
write(str[0..4]); // hello
write(str[0..2]); // hel
write(str[0..0]); // h
// <n 代表从右边向左边数,第n个
write(str[0..<1]); // hello
write(str[1..<3]); // el