Кристалл, если не работает

У меня есть следующая функция

def fcn(lst)
  if (lst.size == 0) 
      return [] of Int32
  end
  lc = lst.map{|a| a[1]}
end

При выполнении:

lst = [] of Int32
puts(fcn(lst))

Я получил:

Ошибка в строке 8: создание экземпляра 'fcn (Array (Int32))'
в строке 5: неопределенный метод '[]' для Int32

Вроде «если» не учитывается. Как я могу исправить эту ошибку?


person user3166747    schedule 04.09.2016    source источник
comment
Не могли бы вы посмотреть документацию о Crystal Syntax?   -  person Furtiro    schedule 05.09.2016


Ответы (1)


В lst.map{|a| a[1]} lst равно Array(Int32), поэтому a равно Int32, а Int32 не имеет метода []. В Ruby Fixnum действительно есть метод [], который возвращает 1, если бит в этой позиции установлен. Не знаю, хотите ли вы этого. В таком случае используйте метод bit.

person asterite    schedule 12.09.2016