出于学习目的,这叫什么?是创建对象是数组还是哈希?
stack_of_cards = []
Run Code Online (Sandbox Code Playgroud)
这就是我填写它的方式:
stack_of_cards << Card.new("A", "Spades", 1)
stack_of_cards << Card.new("2", "Spades", 2)
stack_of_cards << Card.new("3", "Spades", 3)
...
Run Code Online (Sandbox Code Playgroud)
这是我的卡类:
class Card
attr_accessor :number, :suit, :value
def initialize(number, suit, value)
@number = number
@suit = suit
@value = value
end
def to_s
"#{@number} of #{@suit}"
end
end
Run Code Online (Sandbox Code Playgroud)
我想改组这个数组/哈希中的元素(这叫做什么?:S)
有什么建议?
Dig*_*oss 20
stack_of_cards.shuffle
Run Code Online (Sandbox Code Playgroud)
它是一个数组,有关详细信息,请参阅http://www.ruby-doc.org/core-1.8.7/classes/Array.html.
我已经编写了函数形式,它返回一个新的数组,并且它是新的一个被洗牌的.你可以改用:
stack_of_cards.shuffle!
Run Code Online (Sandbox Code Playgroud)
......将阵列原位洗牌.
2ca*_*aos 10
如果你想要改组哈希,你可以使用这样的东西:
class Hash
def shuffle
Hash[self.to_a.sample(self.length)]
end
def shuffle!
self.replace(self.shuffle)
end
end
Run Code Online (Sandbox Code Playgroud)
我发布了这个答案,因为如果我搜索"ruby shuffle hash",我总会发现这个问题.
| 归档时间: |
|
| 查看次数: |
14258 次 |
| 最近记录: |