You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia报错:LoadError: MethodError: no method matching isless(::Vector{Int64}, ::Int64)求助

解决Julia中的MethodError: no method matching isless(::Vector{Int64}, ::Int64)

报错原因

这个错误是因为你在代码中尝试将整数数组(Vector{Int64})和单个整数(Int64)直接用比较运算符(比如<=)对比,而Julia不支持这种操作——<=底层调用isless函数,没有定义数组和整数的比较方法。

从你贴的代码来看,虽然调用form(a=2, b=5, c=[0,0], ...)时,if a == 1 && b == 0这个分支不会触发,但要么是你未贴出的后续代码里存在c <= 1000这类逻辑,要么是你之前调用form时传过a=1、b=0且c为数组的参数,导致触发了@assert c <= 1000的错误。

修复方案

根据你的实际需求选择对应修正方式:

  • 如果要检查数组c中所有元素都不超过1000,把断言改成:
    @assert all(x -> x <= 1000, c) "error."
    
  • 如果要检查数组c的长度不超过1000,改成:
    @assert length(c) <= 1000 "error."
    
  • 如果c本来就应该是单个整数而非数组,那调用时传入整数即可,比如c=0

代码中的其他小问题

  • @error failed"存在语法错误,应该写成@error "failed"
  • Julia变量名区分大小写,你定义的是X = [],但push!(x, ...)里用了小写x,会触发未定义变量错误,要统一改成push!(X, ...)

内容的提问来源于stack exchange,提问作者jawaria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:30:57