0

私は次の機能を持っています

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 行目のエラー: 5 行目の 'fcn(Array(Int32))' のインスタンス化: Int32 の
未定義のメソッド '[]'

「もし」は考慮されていないようです。このエラーを解決するにはどうすればよいですか?

4

1 に答える 1

1

ではlst.map{|a| a[1]}lstArray(Int32)、そうaですInt32、および にはメソッドがありInt32ません[]。Ruby の Fixnum には[]、その位置のビットが設定されている場合に 1 を返すメソッドがあります。それがあなたのやりたいことかどうかはわかりません。bitその場合は、メソッドを使用してください。

于 2016-09-12T19:41:42.103 に答える