在埃菲尔中什么时候使用哪种类型的字符串?我看到了使用READABLE_STRING_GENERAL和不得不l_readable_string.out' to convert it to STRING`‘
发布于 2020-11-29 15:48:39
READABLE_STRING_GENERAL是所有字符串变体的祖先:可变的、不可变的、8位的、32位的,所以当特性能够处理任何字符串变量时,它可以作为形式参数类型使用。
当代码处理Unicode时,READABLE_STRING_32是一个很好的选择,可以使用可变版本或不可变版本。
STRING_32是一个可变的Unicode变体。代码可以更改其值。
STRING是字符串类型的别名,可以是STRING_8,也可以是STRING_32。在编写本报告时,只有少数库适合处理STRING到STRING_32的映射。但是,为了便于使用Unicode,此映射可能成为未来的默认设置。
不管将来如何,我建议使用..._STRING_32来处理字符串。这样,代码直接支持Unicode。图书馆也是朝这个方向更新的。例如,可以使用io.put_string_32将Unicode字符串打印到标准输出(使用当前区域设置)。
发布于 2022-08-20 16:43:06
作为后续行动(我知道我已经晚了几年才发布任何东西)。

https://stackoverflow.com/questions/65055328
复制相似问题