Iva*_*van 2 python scripting lua programming-languages
我需要编写我的应用程序脚本(而不是游戏),我有一个问题,为此选择一个脚本lang.Lua看起来很好(实际上,它是我的任务的理想选择),但它有unicode字符串的问题,将被使用.另外,我考虑过Python,但我不喜欢它的语法,而且它对我来说太大了(大约2.5 Mib).Python和其他类似的langs有太多的功能,battaries和模块,我不需要(例如I/O功能) - 脚本只需要实现逻辑,所有其他将执行我的应用程序.所以,我想知道是否有一个脚本lang,它满足这个条件:
重新发明轮子不是一个好主意,所以我不想发展我自己的郎.或者有一种方法可以在Lua的源代码中编写unicode字符串?像在C++ L"Unicode字符串"
实际上没有"unicode string"这样的东西.字符串是一个可以包含任何内容的字节序列.但是,知道字符串中数据的编码很重要.
我使用带有UTF-8字符串的 Lua ,它适用于我关心的所有操作.我不使用任何Unicode字符串库,尽管这些可用于Lua(ICU4Lua,slnunicode等).
关于在Lua中使用UTF-8字符串的一些注意事项:
使用UTF-8计算代码点非常简单,如果效率略低于其他编码.例如在Lua:
function utf8_length(str)
return select(2, string.gsub(str, "[^\128-\193]", ""));
end
Run Code Online (Sandbox Code Playgroud)
如果您需要的不仅仅是这类内容,我提到的unicode库会为您提供所有内容的API,包括编码之间的转换.
就个人而言,我更喜欢这种简单的方法来强制你使用某种类型的unicode语言(例如Javascript),或者通过在语言中内置多种编码(例如Python)来尝试并聪明.根据我的经验,他们只会导致头痛和性能瓶颈.
无论如何,我认为每个开发人员都应该对unicode如何工作以及不同编码之间的主要区别有一个很好的基本理解,这样他们就可以在应用程序中如何处理unicode做出最佳选择.
例如,如果应用程序中的所有现有字符串都采用宽字符编码,那么使用Lua就不那么方便了,因为您必须为Lua中的每个字符串添加转换.这是完全可能的,但是如果你的应用程序可能受CPU限制(如在游戏中)那么这将是性能方面的负面影响.
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |