Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Julia中使用过滤器后使用contains_Julia - Fatal编程技术网

在Julia中使用过滤器后使用contains

在Julia中使用过滤器后使用contains,julia,Julia,我正在尝试检查是否有其他文件不包含子字符串“Sys”,但以“.vm”结尾,但我收到一个错误消息: ERROR: LoadError: MethodError: no method matching contains(::Array{String,1}, ::SubString{String}) Closest candidates are: contains(::Function, ::Any, ::Any) at reduce.jl:664 contains(::AbstractString

我正在尝试检查是否有其他文件不包含子字符串“Sys”,但以“.vm”结尾,但我收到一个错误消息:

ERROR: LoadError: MethodError: no method matching contains(::Array{String,1}, 
::SubString{String})
Closest candidates are:
contains(::Function, ::Any, ::Any) at reduce.jl:664
contains(::AbstractString, ::AbstractString) at strings/search.jl:378
代码如下:

    for f2 in filter(x -> endswith(x, ".vm"), readdir())

            if  (!contains(f2,"Sys"))
              #Do something with this file
            end
    end
在对过滤器的输出使用readlines后,我遇到了相同的问题:

    for f3 in filter(x -> !startswith(x, "Sys"), readdir())
                calledFileFunction = readlines(f3)
                fileLength=length(calledFileFunction)
                for i=1:fileLength
                    if  (contains(calledFileFunction,"ball"))
                           #Do something
                    end                  
                end
    end

是否有方法将f2强制转换为常规子字符串而不是“Array{String,1}”,以便我可以使用contains?否则,我应该如何实现这些函数?

在第二个示例中,
calledFileFunction
似乎是一个字符串数组。因此,
包含
需要应用于(要重命名…)数组的每个元素

@show-typeof(…)
是一个非常有用的东西,如果您刚开始的话,可以插入到代码中

这样做可能会:

for f3 in filter(x -> startswith(x, "test"), readdir())
   filecontents = readlines(f3)
   fileLength=length(filecontents)
   if any(map(f -> contains(f, "julia"), filecontents))
        println("$f3 contains \"julia\"")
   end                  
end

你需要一个最低限度的工作示例,以便人们能够帮助你。现在很难帮助甚至理解你的意图,这很奇怪。您的第一个代码段看起来应该可以工作,实际上在我的计算机上也可以工作。您确定这就是生成错误消息的代码吗<代码>“Sys”无论如何都不是一个子字符串,所以你的例子有点不对劲。是的,它对我也适用。这里的示例代码不可靠,没有说明问题,或者您环境中的某些东西正在以错误的不完整方式重新定义
包含的内容。