You need to enable JavaScript to run this app. Swift中如何在函数内获取传入参数的变量名并转为字符串打印
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何在函数内获取传入参数的变量名并转为字符串打印

解决方案

你可以借助 Swift 内置的#expression特殊字面量实现需求,它会自动捕获调用函数时传入的表达式原文字符串,不需要额外修改调用逻辑。

最终实现代码

func printValue(_ variable: Double, expression: String = #expression) {
    print(expression, "=", variable)
}

你原有的调用代码printValue(positionX)不需要做任何修改,#expression会自动把传入的参数名positionX作为字符串赋值给expression参数,运行后就能得到你想要的输出效果。

额外说明

  • 该特性依赖 Swift 5.4 及以上版本,Xcode 12.5 及以上版本默认支持。
  • 你提供的示例代码存在拼写错误:变量声明时的名称是poisitionX(多了一个字母i),调用时用的是positionX,需要把命名统一才能正常编译运行。
  • 如果需要适配任意类型的变量打印,可以改成泛型版本,适配性更强:
func printValue<T>(_ variable: T, expression: String = #expression) {
    print(expression, "=", variable)
}
  • 如果是低于 Swift 5.4 的版本,只能手动传入变量名字符串,调用方式为printValue(positionX, expression: "positionX")。

内容的提问来源于stack exchange,提问作者Ahmed Eid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 00:24:03