lua - 如何理解以下代码中的“:”?
问题描述
function Tags.get_forward_backward_by_key(way,data,key)
local forward = way:get_value_by_key(key .. ':forward')
local backward = way:get_value_by_key(key .. ':backward')
if not forward or not backward then
local common = way:get_value_by_key(key)
if (data.oneway) then
if data.is_forward_oneway then
forward = forward or common
end
if data.is_reverse_oneway then
backward = backward or common
end
else
forward = forward or common
backward = backward or common
end
end
return forward, backward
end
我正在阅读这段代码,这并不容易理解。我想知道,“:”是什么意思,“data.oneway”是什么?非常感谢任何参考。
编辑:我刚刚了解到这是一种称为面向对象调用的特殊语法。像 o:foo(x) 这样的表达式只是 o.foo(o, x) 的另一种写法,即调用 o.foo 添加 o 作为第一个额外参数。
解决方案
推荐阅读
- react-apollo - 是否可以在 Apollo Client 中预取 fetchMore?
- android - 在 Kotlin 中为小于或等于 16 的 API 级别创建 Date 对象
- python - TypeError:“模块”对象在 --upgrade pip setuptools 时面对此错误不可调用
- pandas - 如何在数据框中应用多行数据
- python - 调用子类函数减少代码复制
- visual-studio - 在 ci cd azure devops 中集成 azure logic app
- python-3.x - Opencv 3.1.0 与 python 3.7
- python - 读取 .txt 文件 Python 的问题
- ruby-on-rails - 使用扩展过滤器从 URL 下载所有文件
- java - 我想要一个与@Scheduled 和@ConditionalOnProperty 相关的程序