如何找到代码相关文档或者源代码


#1
mutable struct LinearProgramData{M<:AbstractLagrangianMethod, C<:AbstractProblemClass}
    obj::QuadExpr                                # objective
    constraints::Vector{<:ConstraintRef} # constraints being relaxed
    relaxed_bounds::Vector{Float64}             # bounds on constraints when we relax them
    senses::Vector{Symbol}                      # we will cache the sense of constraints
    slacks::Vector{AffExpr}                     # also cache Ax-b
    old_bound::Vector{Float64}                  # cache before relaxing constraints
    method::M                                   # method parameters
    pc::C                                       # problem class
end

function setlagrangianobjective!(m::JuMP.Model, d::LinearProgramData{M, C}, π::Vector{Float64}) where {M<:AbstractLagrangianMethod, C<:LinearProgram}
    if getobjectivesense(m) == :Min
        if length(d.obj.qvars1) == 0
            @objective(m, :Min, d.obj.aff + dot(π, d.slacks))
        else
            @objective(m, :Min, d.obj + dot(π, d.slacks))
        end
    else
        if length(d.obj.qvars1) == 0
            @objective(m, :Max, d.obj.aff - dot(π, d.slacks))
        else
            @objective(m, :Max, d.obj - dot(π, d.slacks))
        end
    end
end

我在学习一个JuMP的第三方库,想看懂他是什么意思,但是遇到了问题就是,不知道里面每个变量是什么意思,比如以上代码我想知道qvars1是什么意思(这个变量应该是JuMP的),通过google及搜索JuMP的GitHub库,或者本地运行help都不知道,请问有什么好的办法吗


#2

给这个package的作者本人发邮件,或者如果这个package在GitHub上面的话你可以直接发issue。


#3

直接 dump(d.obj.qvars1)


#4

搞不清楚为啥Julia变量名/函数名建议全小写,而不同驼峰或像Python用下划线分割。这样看太难受了。


#5

所以才有了 https://github.com/jrevels/YASGuide


#6

标准库的规则是在不影响阅读的时候可以不写下划线,其余变量都要下划线否则是不规范的写法