你将如何实现你的字符串类型?

Col*_*tin 5 string

假设您正在从头开始设计和实现一种新语言,尽管您可以从现有语言/实现中自由借鉴.

问题:如果程序员声明了一个字符串变量(假设是强类型的),你会如何选择将这个变量存储在内存中?

有许多用例,但您是否拥有在某些领域具有优势的特定模型?你的字符串是否可变?它是可变的,但只是一段不是记忆结束的长度吗?我可以动态设置长度,还是只能在编译时完成?是否容易访问'nth'元素?字符串是否需要连续的内存扇区?可以分解成更小的字符串吗?

程序员可能喜欢用字符串来考虑某些事情:计算长度.添加到字符串.提取字符串的部分(子串).应用正则表达式.转换为不同的值(数字,布尔值等)

编辑:澄清我的意思.

如果用户声明以下内容:

var Name : string
Run Code Online (Sandbox Code Playgroud)

作为语言设计师,您如何选择如何将其存储在RAM中?您的方法有哪些优点和缺点,等等.

Yes*_*ke. 5

如果我从头开始编写语言,我希望定义可变和不可变的字符串类型.不变性使字符串处理操作更快,但会产生严重的限制,特别是在连接等方面.

不可变的字符串,我将存储为以null结尾的unicode值数组.可变字符串,我将存储为unicode字符的链接列表,以便于重新洗牌,切片等.