我正在尝试在二叉树中的给定级别打印节点。我已经写了一个方法来执行此操作和一个保护子句来处理基本条件(我没有包含在问题中)
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
答案 0 :(得分:4)
简短回答:将height -1
替换为height - 1
。
由于在Elixir中可以不使用括号调用函数,height
后跟-
后跟1
可能意味着height
减去1
或调用函数带有参数height
的{{1}}。 Elixir决定-1
和x-1
应该是x - 1
减去x
,而1
应该发出错误(可能),因为它可能看起来像你一样调用函数,并要求用户改为使用x -1
或x-1
或x - 1
。