Tag: 构造函数

Ruby中的Stanford-parser不会创建Preprocesser

我试图使用Stanford-parser for Ruby并获得RuntimeError:未找到构造函数 我必须安装’rbj’和’treebank’gem才能让它运行起来。 现在我能 require ‘stanfordparser’ 但无法到达 preproc = StanfordParser::DocumentPreprocessor.new 返回错误的函数在这里(ruby-1.9.3-p0 / gems / stanfordparser-2.2.0 / lib / java_object.rb:40:in“new”): def initialize(obj, *args) @java_object = obj.class == String ? Rjb::import(obj).send(:new, *args) : obj end 我在一些论坛上看到了关于这个问题的几个post,但似乎没有人想出来。 任何想法都非常感谢!

从ruby内部进行施工质量分配

可能重复: 在ruby中创建惯用对象 有时,在构造上为实例变量分配许多构造的参数是有用的。 除了明显的方法: def initialize(arg1, arg2, arg3) @arg1, @arg2, @arg3 = arg1, arg2, arg3 end 是否有更简洁的习惯用于实现相同的结果? 像scala中发现的东西,例如: class FancyGreeter(greeting: String) { def greet() = println(greeting) } 在这种情况下,对象FancyGreeter有一个默认构造函数,为它传递的参数提供赋值。

如何给出Array#new工作的块forms“Array.new(10){| e | e = e * 2}“?

我无法理解花括号内的部分。 Array.new(10) { |e| e = e * 2 } # => [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 我知道创建了一个包含十个值的新数组,但下半部分是做什么的?

Ruby语法问题:Rational(a,b)和Rational.new!(a,b)

今天我在Rational类中遇到了奇怪的ruby语法: Rational(a,b) (注意缺少.new()部分与普通的Ruby语法相比)。 与正常的new语法相比,这意味着什么呢? 更重要的是,我如何在我自己的代码中实现这样的东西,为什么我会实现这样的东西? 特别是对于Rational类,为什么使用这种语法而不是正常的实例化? 为什么new方法在理性类中是私有的? (以及我如何/为什么要在我自己的ruby代码中执行此操作?)提前感谢您的回答,特别是因为我问了很多问题。

ruby:质量初始化实例变量

是否有一种简单的方法来批量分配实例变量 def initialize(title: nil, label_left: nil, label_right: nil, color_set: nil) @title = title @label_left = label_left @label_right = label_right @color_set = color_set end 我可以循环/遍历初始化参数并自动分配吗?

是否可以在类构造函数中使用参数?

我正在写一个rubygem,它对于计算文本中的单词出现很有用,我选择在类构造函数中放入3个参数。 代码正在运行,但我想重构它以获得好处。 根据您的经验,更容易阅读/保护/使用API​​作为一个类,其中包含没有参数和许多setter / getters方法的构造函数或类似这样的代码,构造函数中包含所有参数? TIA 保罗 def initialize(filename, words, hide_list) if ! filename.nil? @filename = filename @occurrences = read else @filename = STDIN @occurrences = feed end @hide_list = hide_list @sorted = Array(occurrences).sort { |one, two| -(one[1] two[1]) } @words = words end