Elixir:作为函数处理的方法参数

Elixir:作为函数处理的方法参数,elixir,Elixir,我试图打印二叉树中给定级别的节点。我已经写了一个方法来实现这一点,并编写了一个guard子句来处理基本条件(我没有在问题中包括) 这种方法给了我错误的说法 height-1”看起来像一个函数调用,但有一个名为“height”的变量,请使用显式括号甚至空格 (stdlib)lists.erl:1353::lists.mapfoldl/3 (stdlib)lists.erl:1354::lists.mapfoldl/3 简短回答:将height-1替换为height-1 由于函数可以在Elixir中

我试图打印二叉树中给定级别的节点。我已经写了一个方法来实现这一点,并编写了一个guard子句来处理基本条件(我没有在问题中包括)

这种方法给了我错误的说法

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


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

由于函数可以在Elixir中无括号调用,
height
后接
-
后接
1
可以表示
height
减去
1
,也可以使用参数
-1
调用函数
height
。Elixir决定
x-1
x-1
应该表示
>x
减去
1
x-1
应该发出一个错误(可能),因为它看起来像是在调用函数,并要求用户使用
x-1
x-1
x(-1)

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