0

RubyでCコードから配列を返す方法は? 私はインライン v3.12 を使用しています。

require 'inline'
class Object
inline(:C) do |builder|
  builder.c "
    VALUE some_method(VALUE s) {
      int s_len = RARRAY_LEN(s);
      int result = 0;
      int i = 0;

      VALUE *s_arr = RARRAY_PTR(s);

      for(i = 0; i < s_len; i++) {
        result += NUM2INT(s_arr[i]); 
      }

      return rb_float_new(result); // HERE I NEED ARRAY RETURN !!!!!
    }"
    end
end

a = Object.some_method([1,2,3,4])
puts a
  • リスト項目
  • リスト項目
  • リスト項目
  • リスト項目
4

1 に答える 1

0

これを試してください: rb_ary_new4(long length, VALUE *values") - 指定された長さの新しい配列を返し、C 配列の値を入力します。

ここから取得します:http: //rubycentral.com/pickaxe/ext_ruby.html (一般的に使用されるメソッドの一部)

于 2013-04-18T22:33:35.197 に答える