Interrogate 在Ruby中引入Scheme风格类谓词的尝试
Interrogate 尝试将类似 Scheme 的类谓词引入 Ruby。它提供了使用 Module#=== 的替代语法,让我们可以更灵活地进行类判断。以下是一些使用示例:
>> require 'interrogate'
>> String?('Hello')
=> true
>> Symbol?(:World)
=> true
>> Float?(1.0)
=> true
您还可以同时“询问”多个对象:
>> String?('Hello', :World, 1.0)
=> false
>> String?('Hello', 'World', '1.0')
=> true
或“询问”一个块的返回值:
>> num = 1
>> String?('Hello') { num }
=> false
>> String?('Hello') { num.to_s }
=> true
>> String?('Hello', :World, 1.0)
=> false
>> String?('Hello', 'World', '1.0')
=> true
>> num = 1
>> String?('Hello') { num }
=> false
>> String?('Hello') { num.to_s }
=> true
反馈使用 GitHub!
下载地址
用户评论