Elixir:被视为函数的方法参数
问题描述:
我试图打印二进制树中给定级别的节点。我已经写了这样做的方法和保护条款来处理Elixir:被视为函数的方法参数
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
这种方法是给我的基本条件(我还没有列入问题)错误,指出
高度 - (stdlib)lists.erl:1353::lists.mapfoldl/3 (stdlib)lists.erl:1354:表示一个函数调用,但有一个名为“height”的变量,请使用明确的括号或空格。 :lists.mapfoldl/3
答
简答题:将height -1
替换为height - 1
。
由于功能可以在不括号中药剂被调用,height
其次-
其次1
既可以意味着height
减去1
或调用函数height
与参数-1
。药剂决定x-1
和x - 1
应该是指x
减去1
而x -1
应该发出一个错误(可能),因为它可能看起来像你调用一个函数,并要求用户要么使用x-1
或x - 1
或x(-1)
代替。