\0
- это просто байт со значением ноль, ему не нужно никакого причудливого имени.Строки Lua - это просто байтовые строки, которые отслеживают их длину, поэтому они могут содержать любые байтовые значения, включая ноль.Некоторые функции обрабатывают эти байтовые строки так, как если бы они были C-строками, оканчивающимися на \0
, по-видимому, print
делает это.
Это означает, что в lua #s
(длина строки) равно O (1)против O (n) для C строк.Кроме того, приложение может использовать строки lua для любых потоков байтов, например, текста в кодировке UTF-16 или содержимого двоичных файлов.