相关疑难解决方法(0)

836
推荐指数
4
解决办法
14万
查看次数

在Ruby中创建模块变量

有没有办法在Ruby中的模块中创建一个类似于类变量的变量?我的意思是,它可以在不初始化模块实例的情况下访问,但可以更改(与模块中的常量不同).

ruby module class-variables

107
推荐指数
4
解决办法
8万
查看次数

Ruby中@@和@有什么区别?

我刚开始学习Ruby,我无法找到关于类变量方面@@和@之间区别的好解释.如果任何人都可以提供一个基本的直观示例,那将非常棒.它们也可以互换吗?

ruby variables class

10
推荐指数
2
解决办法
8923
查看次数

命名约定"@@ /"(at-at-slash)来自哪里?

我在很多JavaScript库中看到过它(例如,这里,这里这里).我认为它是一种命名空间,但我无法在任何地方找到解释或至少有任何评论.

javascript conventions naming-conventions

5
推荐指数
1
解决办法
248
查看次数

Ruby 类变量的 Getter/Setter

可以为使用attr_accessor以下方法为实例变量生成的类变量自动生成/启用 getter/setter :

class School
  @@syllabus = :cbse

  def self.syllabus
    @@syllabus
  end

  def self.syllabus=(_)
    @@syllabus = _
  end
end

School.syllabus = :icse
School.syllabus # => :icse
Run Code Online (Sandbox Code Playgroud)

ruby

4
推荐指数
1
解决办法
2823
查看次数

如何在 Ruby 中定义类级常量正则表达式以供外部类使用

我正在编写一些测试来验证要在 Ruby 控制台应用程序中使用的一些正则表达式的行为。我正在尝试在不打算实例化的类上定义常量类级别字段(只是应该在其上定义常量 RE 值。我无法使用 Ruby 习惯用法正确定义它(我有 C++/C# 背景)。

首先我尝试定义一个类常量

class Expressions
  # error is on following line (undefined method DATE)
  Expressions.DATE = /(?<Year>\d{4})-(?<Month>\d{2})-(?<Day>\d{2})/

end

class MyTest < Test::Unit::TestCase
  def setup
    @expression = Expressions::DATE
  end

  def test
    assert "1970-01-01" =~ @expression
  end
end
Run Code Online (Sandbox Code Playgroud)

这只会产生错误:未定义方法 `DATE=' for Expressions:Class (NoMethodError)

接下来我尝试了类属性:

class Expressions
  @@Expressions.DATE = /(?<Year>\d{4})-(?<Month>\d{2})-(?<Day>\d{2})/ 
end

class MyTest < Test::Unit::TestCase
  def setup
    # NameError: uninitialized constant Expressions::DATE here:
    @expression = Expressions::DATE
  end

  def test
    assert "1970-01-01" =~ @expression
  end
end
Run Code Online (Sandbox Code Playgroud)

这会产生 …

ruby regex constants

3
推荐指数
1
解决办法
2706
查看次数

在Ruby中使用单个'@'和double'@'声明对象之间的区别

可能重复:
@@ variable在Ruby中意味着什么?

使用double'@'声明对象时有什么区别

@@lexicon = Lexicon.new()
Run Code Online (Sandbox Code Playgroud)

并在Ruby中用单个'@'声明对象?

@lexicon = Lexicon.new()
Run Code Online (Sandbox Code Playgroud)

ruby oop class object

2
推荐指数
1
解决办法
162
查看次数

在Ruby中编写基本计算器

这是我第一次涉足计算机编程.我选择学习Ruby,我很享受它.但是,我有点困惑的是为什么答案在这段代码中输出不正确.

def addition_function
    puts "Which numbers would you like to add?"
    @n1 = gets.chomp
    @n2 = gets.chomp
    @n1 + @n2 == @answer
    puts "The sum is... #{@answer}"
end

def subtraction_function
    puts "Which numbers would you like to subtract?"
    @n1 = gets.chomp.to_i
    @n2 = gets.chomp.to_i
    @n1 - @n2 == @answer
    puts "The answer is... #{@answer}"
end

def multiplication_function
puts "Which numbers would you like to multiply?"
    @n1 = gets.chomp
    @n2 = gets.chomp
    @n1 * @n2 == @answer
    puts "The answer is... …
Run Code Online (Sandbox Code Playgroud)

ruby

0
推荐指数
1
解决办法
1万
查看次数