如何理解下面代码中的":"?

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 作为第一个额外的参数。

点赞