Tag: struct

如何在RubyFFI中将结构指定为函数的返回值?

我必须加载几个从库本身返回结构的函数。 attach_function ‘fn_name’, [], # … What do I put here? RubyFFI的Wiki页面似乎已经过时了,所以我在这里有点迷失。 如何创建FFI::Struct ,如何将其指定为本机函数的返回类型?

Ruby Structs中的命名参数

如果这是一个显而易见的问题,我对Ruby很新,所以道歉。 我想在实例化Struct时使用命名参数,即能够指定Struct中哪些项获取什么值,并将其余项默认为nil。 例如,我想做: Movie = Struct.new :title, :length, :rating m = Movie.new :title => ‘Some Movie’, :rating => ‘R’ 这不起作用。 所以我想出了以下内容: class MyStruct ‘Some Movie’, :rating => ‘R’ 这似乎工作得很好,但我不确定是否有更好的方法来做到这一点,或者如果我做的事情非常疯狂。 如果有人能够validation/撕开这种方法,我将非常感激。 UPDATE 我最初在1.9.2中运行它并且它工作正常; 但是在其他版本的Ruby中尝试过它(谢谢rvm),它的工作原理不起作用,如下所示: 1.8.7:不工作 1.9.1:工作 1.9.2:工作 JRuby(设置为1.9.2运行):不工作 JRuby对我来说是一个问题,因为我想保持它与部署目的兼容。 再来一次更新 在这个不断增加的漫无边际的问题中,我尝试了各种版本的Ruby并发现1.9.x中的Structs将其成员存储为符号,但在1.8.7和JRuby中,它们存储为字符串,因此我将代码更新为如下(接受已经给出的建议): class MyStruct ‘Some Movie’, :rating => ‘R’ 现在这似乎适用于我尝试过的所有Ruby风格。