2017-02-12 3 views
0

Я получаю эту ошибку при выполнении этого куска кодане неявное преобразование нуля в целое с рубином

def write (data) 
    if @buffer[@indexwrite] == nil 
    @buffer[@indexwrite] = data 
    @indexwrite += 1 
    else 
    raise BufferFullException 
    end 
end 

, в частности, во второй строке кода

if @buffer[@indexwrite] == nil 

не есть лучший способ проверить, нет ли элемента массива?

+0

Спрашивая «есть лучший способ ...» для кода, который работает, вы должны смотреть на [codereview.se] вместо стека Переполнение. –

+0

Почему бы вам не объединить массив, удалить значения nil. – kurenn

ответ

0

Я бы переформатировать свой код, чтобы сделать этот путь:

def write (data) 
    raise BufferFullException unless @buffer[@indexwrite].nil? 

    @buffer[@indexwrite] = data 
    @indexwrite += 1 
end