ruby - 在 Ruby 中引用另一个类的方法

标签 ruby lambda

我这样做:

distanceFunc = lambda do |a,b|
  Leven.wordLevenWithOps(a, b)
end
links = prims(phrases, &distanceFunc)

它有效,但我想要更短的内容,例如:

links = prims(phrases, &Leven.wordLevenWithOps)

什么是正确的语法?

最佳答案

你可以得到任何类的类方法作为

ClassName.method(:method_name) 

你可以传递它的引用

对于您的情况(将 wordLevenWithOps 视为 Leven 中的类方法),以下是可行的;

links = prims(phrases, &Leven.method(:wordLevenWithOps))

希望这对您有所帮助。

关于ruby - 在 Ruby 中引用另一个类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9473078/

相关文章:

ruby - 从深层嵌套模块访问常量

ruby - NoMethodError:8 的未定义方法 `type':Fixnum

ruby - 为什么 sqrt() 不是 Numeric 上的方法?

c++ - 通过 clang-format 格式化 lambda 背后的逻辑是什么?

java - 通过比较 ZonedDateTime 类型的内部字段,使用 lambda 对 beans 进行排序

ruby - 在 Ruby 中用 step != 1 声明一个整数范围

ruby-on-rails - ruby-on-rails 中的辅助列覆盖

c++ - 将 std::function 类成员与编译器优化一起使用时出现段错误

python - py3k : case-insensitive list sorting - With or WIthout lambda?

c++ - GCC 的 std::sort 与 lambda 的不稳定行为