2

Rubyのacライブラリの関数にアクセスするために、本当に素晴らしいruby ffiライブラリを使用しています。

Ruby FFI::Struct のレイアウトを反復処理する方法はありますか?

FFI::構造体の例:

class Example < FFI::Struct
  layout :name, string,
         :desc, :string,
         :type, :int,
         :value, :string
end

これは機能していないようですが、以下の疑似コードのようなものです:

example_struct.each_key do |key|
  puts key
end
4

2 に答える 2

3

struct.rb のソースを見るとStruct::members、「キー」として定義したシンボルの配列を取得するために呼び出すことができることがわかりました。

そこからStruct::values、各メンバーの値、各メンバーStruct::offsetsのオフセット、およびその他のいくつかのメソッドも取得しました。

于 2010-03-19T16:16:37.150 に答える