小编use*_*377的帖子

Ruby 101:如何保存,读取,写入,然后保存数组的内容?

感谢您抽出宝贵时间进行审核,并就我的简单问题提出建议.我正在为我正在工作的练习寻求解决方案.

我想知道如何编写这个数组的内容:

@points = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

到这个字符串:

saved_points1  = "SAVED_POINTS2 = [%s]" % [@points]
Run Code Online (Sandbox Code Playgroud)

这样当打印saved_points1时,它会打印:

"SAVED_POINTS2 = [1, 2, 3, 4]"
Run Code Online (Sandbox Code Playgroud)

现在,我在打印时看到了这个:

"SAVED_POINTS2 = [1234]"
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,也许这可能是一个红宝石版本的问题.我在1.8.7.也许如果我在1.9.x上阵列将按预期打印?或者是否有不同/更好的方法来保存,读取,然后打印此操作?

如果它有所不同,SAVED_POINTS2存在于实例化时我需要的模块中.我正在使用该模块中的变量来加载/保存我的新类的值(@points存在于其中).我敢打赌,这不是保存状态的正确方法,但这是我知道如何在我目前的红宝石理解水平上做到这一点的唯一方法.所以,我不一定在寻找更好的保存状态方法的建议,因为我想确保我先了解如何从这些数组中正确读/写.但如果你得到了我认为我明白的建议,我很乐意听到.

ruby arrays save ruby-1.8

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

未定义的方法'.any?' for"":String(NoMethodError

def room_actions    
  case $next_move
  when "instructions"
    instructions
  when $next_move.any? { |x| ['up', 'down', 'left', 'right'].include?(x) }
    determine_start
  else 
    puts "I don't understand that."
    prompt; $next_move = gets.chomp()
    room_actions
  end
end
Run Code Online (Sandbox Code Playgroud)

原谅我不理解这里发生了什么,但为什么ruby会抛出这个错误?

foo.rb:83:在room_actions': undefined method任何?for"":String(NoMethodError)

$next_move 是一个全局变量(我知道它们很糟糕,我正在重构),我从状态机中获取chomp来提供这个方法.

似乎我没有定义'任何?' 方法.或者我传递的字符串是空的?无论如何,不​​是'.any?' 一个内置的ruby方法?我正在使用2.0.0.

谢谢你看一看并提出建议.

ruby any

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

在Ruby中,为什么我的基类只放一次?

我很高兴知道为什么"Cat"下面的实例也没有将"This animal can:"文本放在其特定的实例属性之前.我期待这样的输出:

This animal can:
Say it's name: 'Rover'
Bark
This animal can:
Say its name: 'Satan'
Meow
Run Code Online (Sandbox Code Playgroud)

这是代码:

class Animal
    puts "This animal can:"
end

class Dog < Animal
    def initialize(name)
        @name = name
        puts "Say its @name: '%s'" % [name]
    end
    def bark
        puts "Bark"
    end
end

class Cat < Animal
    def initialize(name)
        @name = name
        puts "Say its @name: '%s'" % [name]
    end
    def meow
        puts "Meow"
    end
end

rover = Dog.new("Rover").bark …
Run Code Online (Sandbox Code Playgroud)

ruby inheritance class

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

标签 统计

ruby ×3

any ×1

arrays ×1

class ×1

inheritance ×1

ruby-1.8 ×1

save ×1