Julia 追加以“失败”;“没有匹配长度的方法”;在mix中自定义输入时

Julia 追加以“失败”;“没有匹配长度的方法”;在mix中自定义输入时,julia,Julia,我刚刚完成了Julia的基础知识,为了更好地理解构造,我正在尝试解决一些简单的问题 如果我有一个自定义结构,比如说HttpRequest,那么创建一个HttpRequest数组的数组,比如说sampleArr 我的要求是在sampleArr[index]中动态更新HttpRequest数组 在尝试追加时我得到以下错误 错误:LoadError:MethodError:没有方法匹配长度(::HttpRequest) 下面的代码可以作为我尝试做的示例 #!/usr/bin/env julia st

我刚刚完成了Julia的基础知识,为了更好地理解构造,我正在尝试解决一些简单的问题

如果我有一个自定义结构,比如说
HttpRequest
,那么创建一个
HttpRequest数组的数组,比如说
sampleArr

我的要求是在
sampleArr[index]
中动态更新
HttpRequest数组

在尝试
追加时我得到以下错误

错误:LoadError:MethodError:没有方法匹配长度(::HttpRequest)

下面的代码可以作为我尝试做的示例

#!/usr/bin/env julia

struct HttpRequest
  httpMethod
  httpHost
  httpBlah
end

reqA = HttpRequest("GET", "1.1.1.1", "yada")
reqB = HttpRequest("PUT", "1.1.1.1", "blah")
reqC = HttpRequest("GET", "2.3.2.3", "boka")
reqD = HttpRequest("POST", "8.1.8.1", "juka")
reqE = HttpRequest("PUT", "4.4.4.4", "kula")

sampleArrLen = 10
sampleArr = Array{Array, 1}(undef,sampleArrLen)

sampleArr[5] = [reqA]
append!(sampleArr[5], reqB)

您必须使用
push而不是
追加,如下所示:

julia> push!(sampleArr[5], reqB)
2-element Array{HttpRequest,1}:
 HttpRequest("GET", "1.1.1.1", "yada")
 HttpRequest("PUT", "1.1.1.1", "blah")

julia> sampleArr
10-element Array{Array,1}:
 #undef
 #undef
 #undef
 #undef
    HttpRequest[HttpRequest("GET", "1.1.1.1", "yada"), HttpRequest("PUT", "1.1.1.1", "blah")]
 #undef
 #undef
 #undef
 #undef
 #undef
push
追加就是推将单个元素推送到集合并
追加将其他集合的所有元素追加到集合的末尾。因此,以下操作将起作用
append!(sampleArr[5],[reqB])
并给出与推送相同的结果!(sampleArr[5],reqB)
。这里的区别是将
reqB
包装在一个数组中,因此现在将单个元素集合附加到
sampleArr