如何获得Ruby解释器堆栈的当前深度?

时间:2019-05-06 12:46:27

标签: ruby stack

我想了解堆栈深度,以了解递归函数的深度。

我发现了How do I get the current depth of the Python interpreter stack?,这正是我想要的,但是它是python,当我在“ Ruby获取堆栈深度”上用Google搜索时,找不到类似的东西。

我想做的是这样的:

def recursive_func(n)
   if n == 1
      return get_current_depth()
   end
   recursive_func(n - 1)
end

我可以使用什么?

1 个答案:

答案 0 :(得分:3)

使用caller大概是这样的:

func createLink(c echo.Context) error {
    l := new(Lien)
    if err := c.Bind(l); err != nil {
        return err
    }
    sqlStatement := "INSERT INTO link_test (label, address,langs, cats)VALUES ($1, $2, $3, $4)"
    res, err := db.Query(sqlStatement, l.Linklabel, l.Linkaddress, pq.Array(l.Langs), pq.Array(l.Cats))
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res)
        return c.JSON(http.StatusCreated, l)
    }
    return c.String(http.StatusOK, "ok")
}

请记住,当程序启动时,它会从某个深度开始,因此您可能需要从计数中减去它。