如何修复 julia 中的 Stackoverflow 错误

How can I fix the error Stackoverflow in julia

我在下面写了一些代码,它工作正常。

function value_counter(data, feature_name)
    feature_col = unique(data, feature_name)
    unique_val = unique!(unique(data, feature_name))
    count_val = []
    value_counts_dict = Dict()
    for val in unique_val
        counter = 0
        for col_val in feature_col
            if val == col_val
                counter += 1
            end
        end
        append!(count_val, counter)
        value_counts_dict[val] = counter
    end
    return value_counts_dict
end

但是当我运行它翻了三遍。它出现了一个错误 'Whosebug',我认为是来自 unique 方法的错误。如何在 运行 执行代码后释放堆栈?
更新:我尝试重新定义独特的方法。仍然是错误,但这次是在 'in' 方法中

ERROR: LoadError: WhosebugError:
Stacktrace:
 [1] in(x::SubString{String}, itr::Vector{Any})
   @ Base .\operators.jl:1283
 [2] redefine_unique(data::Vector{Any})
   @ Main E:\Study_grade\Csttnt\Project03_decision_tree\Decision_Tree.jl:35

可能不是 in 方法或 unique 方法本身 导致 堆栈溢出。相反,您有一些大的、可能是递归的堆栈,当它到达下游函数时恰好达到堆栈大小限制。您应该在堆栈中寻找的是递归部分所在的位置。哪些功能被重复调用?您可能在某处遗漏了一个基本情况,或者可能将意外的递归引入了一个被覆盖的基本函数中,正如 Sundar 提到的那样。