Ruby 数组的未定义方法
因此,我收到错误消息“undefined method'ip_histogram'for#(NoMethodError)”,代码如下Ruby 数组的未定义方法,ruby,oop,Ruby,Oop,因此,我收到错误消息“undefined method'ip_histogram'for#(NoMethodError)”,代码如下 class CommonLog def initialize(logfile) @logfile = logfile end def readfile @readfile = File.readlines(@logfile).map { |line| line.split() } @readfile = @r
class CommonLog
def initialize(logfile)
@logfile = logfile
end
def readfile
@readfile = File.readlines(@logfile).map { |line|
line.split()
}
@readfile = @readfile.to_s.split(" ")
end
def ip_histogram
@ip_count = 0
@readfile.each_index { |index|
if (@readfile[index] =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ )
puts @readfile[index]
puts @ip_count += 1
end
}
end
end
my_file = CommonLog.new("test_log")
cleaned_file = my_file.readfile
puts cleaned_file.ip_histogram
我正在尝试读入数组并用正则表达式检查它。如果我从方法中取出代码并将其扔进主程序,它就可以工作,但我想知道为什么它不能作为方法工作。my_file.readfile的返回值是一个数组。除非在
Array
类中定义了ip\u直方图
,否则不能在cleaned\u文件
中调用它
要在数组
上定义ip\u直方图
(定义与代码中的定义不同):
my_file.readfile
的返回值是一个数组。除非在Array
类中定义了ip\u直方图
,否则不能在cleaned\u文件
中调用它
要在数组
上定义ip\u直方图
(定义与代码中的定义不同):
my_file.readfile
的返回值是一个数组。除非在Array
类中定义了ip\u直方图
,否则不能在cleaned\u文件
中调用它
要在数组
上定义ip\u直方图
(定义与代码中的定义不同):
my_file.readfile
的返回值是一个数组。除非在Array
类中定义了ip\u直方图
,否则不能在cleaned\u文件
中调用它
要在数组
上定义ip\u直方图
(定义与代码中的定义不同):
您正在将
CommonLog#readfile
的结果分配给一个新变量cleaned_file
。您没有提供任何输入,但我现在假设@readfile是一个数组
这意味着您的代码将假设在数组
类上有一个实例方法ip\u直方图
,而实际上没有
您只需按顺序运行这些命令,即可获得所需的结果:
clog = CommonLog.new("test_log")
clog.readfile
clog.ip_histogram
这里的主要区别是,我们没有使用readfile
的返回值,因为它只需要在方法中设置变量,使ip\u直方图
起作用。您将CommonLog#readfile
的结果分配给一个新变量已清理的\u文件
。您没有提供任何输入,但我现在假设@readfile是一个数组
这意味着您的代码将假设在数组
类上有一个实例方法ip\u直方图
,而实际上没有
您只需按顺序运行这些命令,即可获得所需的结果:
clog = CommonLog.new("test_log")
clog.readfile
clog.ip_histogram
这里的主要区别是,我们没有使用readfile
的返回值,因为它只需要在方法中设置变量,使ip\u直方图
起作用。您将CommonLog#readfile
的结果分配给一个新变量已清理的\u文件
。您没有提供任何输入,但我现在假设@readfile是一个数组
这意味着您的代码将假设在数组
类上有一个实例方法ip\u直方图
,而实际上没有
您只需按顺序运行这些命令,即可获得所需的结果:
clog = CommonLog.new("test_log")
clog.readfile
clog.ip_histogram
这里的主要区别是,我们没有使用readfile
的返回值,因为它只需要在方法中设置变量,使ip\u直方图
起作用。您将CommonLog#readfile
的结果分配给一个新变量已清理的\u文件
。您没有提供任何输入,但我现在假设@readfile是一个数组
这意味着您的代码将假设在数组
类上有一个实例方法ip\u直方图
,而实际上没有
您只需按顺序运行这些命令,即可获得所需的结果:
clog = CommonLog.new("test_log")
clog.readfile
clog.ip_histogram
这里的主要区别是我们没有使用readfile
的返回值,因为它只需要在方法中设置变量,使ip\u直方图
起作用。如何在数组上定义ip\u直方图,在数组类上定义它?将数组类继承到CommonLog类中?如何在数组上定义ip_直方图,在数组类上定义它?将数组类继承到CommonLog类中?如何在数组上定义ip_直方图,在数组类上定义它?将数组类继承到CommonLog类中?如何在数组上定义ip_直方图,在数组类上定义它?将数组类继承到CommonLog类?啊,这马上就解决了!所有方法功能齐全,非常感谢您的帮助!你是救命恩人!啊,这马上就解决了!所有方法功能齐全,非常感谢您的帮助!你是救命恩人!啊,这马上就解决了!所有方法功能齐全,非常感谢您的帮助!你是救命恩人!啊,这马上就解决了!所有方法功能齐全,非常感谢您的帮助!你是救命恩人!