【问题标题】:Elixir: Method arguments being treated as functionElixir:方法参数被视为函数
【发布时间】:2017-01-18 12:53:14
【问题描述】:

我正在尝试在二叉树中的给定级别打印节点。我已经编写了一个方法来执行此操作和一个保护子句来处理基本条件(我没有包含在问题中)

def get_node_at_level(root, height) do
   get_node_at_level(root.left, height -1)
   get_node_at_level(root.right, height -1)
end

这个方法给了我一个错误,说

height -1" 看起来像一个函数调用,但有一个名为“height”的变量,请使用显式括号甚至空格 (stdlib)lists.erl:1353::lists.mapfoldl/3 (stdlib)lists.erl:1354::lists.mapfoldl/3

【问题讨论】:

    标签: elixir


    【解决方案1】:

    简答:将height -1 替换为height - 1

    由于在 Elixir 中可以不带括号调用函数,height 后跟 - 后跟 1 可能意味着 height 减去 1 或使用参数 -1 调用函数 height。 Elixir 决定 x-1x - 1 应该意味着 x 减去 1x -1 应该发出错误(可能)因为它可能看起来像你正在调用一个函数,并要求用户使用 @改为 987654335@ 或 x - 1x(-1)

    【讨论】:

      猜你喜欢
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      相关资源
      最近更新 更多