2017-01-25 3 views
1

인터넷 검색을 시도하고 stackoverflow를 살펴본 결과 여전히 작동하지 않는 이유를 파악하지 못했습니다. 기본적으로,이 코드 줄이 내가 당신은 당신의 변수를 초기화해야NoMethodError : nil 클래스에 대해 정의되지 않은 메소드 '+'

NoMethodError: undefined method `+' for nil:NilClass 

method block in <main> in VirtualMemory.rb at line 3 
method each in VirtualMemory.rb at line 2 
method <main> in VirtualMemory.rb at line 2 

답변

2
line_num += 1 

은 전무하다

line_num = line_num + 1 

에 해당 like :

array = File.open('file.txt').each.map{ |line| line.split(" ")} 
3

있어 오류입니다

# Load instruction in an array 
File.open('file.txt').each do |line| 
    line_num += 1 
    array.to_a.push line.split(" ") 
end 

# Loop through the array of Instructions 
array.each do |line| 
    instruction = line[0] 
    value = line[1].to_i 

파일을 텍스트에 대한 지침의 라인을 통해 file.txt를 루프에 읽고 . line_num 않는 한

line_num += 1 

는 이전에 기본적으로 이전에 array을 정의하지 않은 경우에도 실패합니다 line_num = nil + 1

같은 일이,이 실패합니다 정의, 그리고 당신이 있다면, 다음이있을 것 아무런 연락이없는 to_a. 수정 파일을 열기 전에 0으로 초기화하는 것, 또는 당신이 뭔가를 할 수 - LINE_NUM가 정의되어 있지 않기 때문에

array.to_a.push line.split(" ") 
관련 문제