什么是嵌入式零?
2011-12-12 14:15:39
收藏:0
阅读:105
评论:5
原文链接 https://stackoverflow.com/questions/8475656
点赞
stackoverflow用户1441
这将类似于在 C 字符串中放置一个 NULL 字符。尽管您的打印输出不显示 b
字符,但其他 Lua 函数应该可以使用字符串的完整长度(不像 C 字符串处理函数只能使用以 NULL 结尾的字符串)。
其中一个用途是使用一个字符串来保存多个由 \0
分隔的值。
```
2011-12-12 14:22:41
stackoverflow用户137317
\0
就是一个值为零的字节,没有什么花哨的名称。Lua 字符串只是保持其长度的字节字符串,因此它们可以包含任何字节值,包括零。一些函数将这些字节字符串视为以\0
结尾的 C 字符串,显然 print
函数就是这样处理的。
这意味着在 Lua 中,#s
(字符串长度)的时间复杂度是 O(1),而 C 字符串的时间复杂度是 O(n)。应用程序可以使用 Lua 字符串来表示任何字节流,例如 UTF-16 编码的文本或二进制文件内容。
2011-12-12 14:30:00
stackoverflow用户427413
每个字符都有其内部数值表示方式,例如 'a' 的码值是 \97。而码值为 \0 的字符并不代表任何可见字符,但在 C 和其他编程语言中,它是一个终止符。
该手册想要明确表明,在 Lua 中,'\0' 不是一个终止符。这也意味着,你可以将任意字节加载到一个字符串中(图像、音频、视频、本地代码等),而不必担心它会在某些库函数处被截断于第一个 '\0'(在 C 中这种情况可能会发生,如果你使用与字符串有关的函数)。
2011-12-12 15:02:51
stackoverflow用户9915018
Lua 5.2 在处理字符串中的 nul 字节时表现良好,而 Lua 5.1 则存在一些问题。 我发现函数 print 在 nul 字节之后会丢弃所有字符。 而函数 string.format 则返回第一个 nul 字符之前的字符串。
Lua 5.2 works well when Lua 5.1 has several problems with nul bytes in the string.
I've found that the function print dischards all characters after the nul byte.
Also the function string.format returns string up to the first nul character.
2018-06-08 15:55:01
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
在源码字符串文字或字符常量中,空字符通常被表示为转义序列
\\0
。维基百科 空字符