2012-10-20 90 views
0

我正在做我的第一个程序,一个简单的待办事项列表。我想让它输入一个数字,然后从列表中删除相应的项目。“无从nil到整数的隐式转换”

虽然每次我都会得到“没有从nil到整数的隐式转换”。我似乎无法解决这个问题。有任何想法吗?

$list = Array.new 

def mainmethod 
    puts "Enter new item, or type 'view' to view the list, 'delete' to delete items" 
    input = gets.chomp 

    if input.downcase == "view" 
    puts "Your to do list is as follows:" 
    puts $list 

    elsif input.downcase == "delete" 
    puts "Which item would you like to delete? (Enter a number)" 
    deletenumber = gets.chomp.to_i 
    deletenumber-=1 
    delete_list = [deletenumber] 
    delete_list.each do |del| 
     $list.delete_at($list.index(del)) 
    end 

    else 
    $list << input 
    puts "Added to list!" 
    end 
end 

loop { mainmethod } 
+0

寻找这个错误信息应该给你在StackOverflow上很多重复的答案。另请参阅:http://stackoverflow.com/questions/12361869/no-implicit-conversion-from-nil-to-integer – pje

回答

1

错误TypeError: no implicit conversion from nil to integer当您尝试访问使用nil作为索引的数组的元素发生。在你的情况下,它看起来像delete_at被传递零:

[ 1, 2, 3 ].delete_at(nil) 
# => TypeError: no implicit conversion from nil to integer 
相关问题