Lua 的 tostring 函数

Lua 的 tostring 函数 是一个内置的基础函数,用于将给定的值转换为字符串表示形式。这个函数在 Lua 5.1 到 Lua 5.4 的所有版本中都可用,是处理数据类型转换时最常用的函数之一。

基本语法:

lua 复制代码
tostring(value)

功能特点:

  1. 对于数字类型,会直接转换为对应的字符串形式:
lua 复制代码
print(tostring(123))    -- 输出 "123"
print(tostring(3.14))   -- 输出 "3.14"
  1. 对于字符串类型,会返回字符串本身:
lua 复制代码
print(tostring("hello")) -- 输出 "hello"
  1. 对于布尔值,会返回 "true""false"
lua 复制代码
print(tostring(true))   -- 输出 "true"
print(tostring(false))  -- 输出 "false"
  1. 对于 nil,会返回 "nil"
lua 复制代码
print(tostring(nil))    -- 输出 "nil"
  1. 对于 table 等复杂类型,默认返回其内存地址的字符串表示:
lua 复制代码
local tbl = {}
print(tostring(tbl))    -- 输出类似 "table: 0x7f8e5bc04230"

高级用法:

  • 可以通过为 table 定义 __tostring 元方法来自定义输出:
lua 复制代码
local person = {name = "Alice", age = 25}
setmetatable(person, {
    __tostring = function(t)
        return "Person: "..t.name..", "..t.age.." years old"
    end
})
print(tostring(person)) -- 输出 "Person: Alice, 25 years old"
  • 在字符串拼接时会自动调用 tostring
lua 复制代码
local num = 42
print("The answer is "..num) -- 自动转换为 "The answer is 42"

应用场景:

  1. 调试输出时查看变量内容
  2. 日志记录时需要将各种数据类型转为字符串
  3. 字符串拼接前的类型转换
  4. 序列化数据前的预处理

注意事项:

  • 对 userdata 类型的转换结果取决于其元表定义
  • 大数字转换时可能会损失精度
  • 自定义 __tostring 时要注意避免递归调用
相关推荐
就叫飞六吧1 小时前
WebService 与 REST 的区别
笔记
AI视觉网奇1 小时前
android yolo12 android 实战笔记
android·笔记·yolo
iナナ1 小时前
Java自定义协议的发布订阅式消息队列(二)
java·开发语言·jvm·学习·spring·消息队列
c_h_o_i_c_e1 小时前
MATLAB 帮助文档设置内置浏览器【Web浏览器/内置浏览器】
开发语言·matlab
ZHang......1 小时前
JDBC 笔记
java·笔记
橙序员小站1 小时前
Java 接入Pinecone搭建知识库踩坑实记
java·开发语言·人工智能
CHANG_THE_WORLD1 小时前
Python元组(Tuple)详解
开发语言·python
豆沙沙包?1 小时前
2025年--Lc313-662. 二叉树最大宽度--java版
java·开发语言
CoderYanger1 小时前
C.滑动窗口——2762. 不间断子数组
java·开发语言·数据结构·算法·leetcode·1024程序员节