Ruby FFI Enum用法 - 发送整数

时间:2013-04-02 13:14:06

标签: ruby ffi

在Enums(https://github.com/ffi/ffi/wiki/Enums)的ffi文档中,它提到了在创建ffi时,例如:

# Example using enums

module Week
  extend FFI::Library
  ffi_lib "week"

  enum :day, [:sunday, 1,
              :monday,
              :tuesday,
              :wednesday,
              :thursday,
              :friday,
              :saturday ]

  attach_function :is_work_day, [ :day ], :int
end

# How you would call the function:
Week.is_work_day( :monday )

# This is also allowed, in case you need to use integers:
Week.is_work_day( 2 )

问题是:当您发送'2'时,会查看:day枚举并查找第二个条目的值,还是将实际的'2'值发送给您的函数?

1 个答案:

答案 0 :(得分:0)

两次调用都会将整数2发送给函数。第一个调用会将符号:monday解析为2,第二个调用不需要,因为已经给出了2。