我有一个看起来像这样的列表:
list = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'
Run Code Online (Sandbox Code Playgroud)
我想逐个迭代它,这样我就可以在同一个迭代中修改'a'和'b'.这将是我需要做的java等价物:
for (int i = 0; i < list.size(); i+=2){
System.out.println(list.get(i) + list.get(i+1));
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个布尔方法来检查数组中的整数之和是否等于21.这是代码:
def twenty_one? (*arr)
arr.inject(0){|sum,x| sum + x }
arr.eql? (21)
end
Run Code Online (Sandbox Code Playgroud)
但是,如果我检查
puts twenty_one?(19, 2)
Run Code Online (Sandbox Code Playgroud)
它回来了false,即使我也尝试了其他一些.我在这段代码中缺少什么?
我的哈希是:
hash = { text:'abc', text1:'123', other values }
Run Code Online (Sandbox Code Playgroud)
我希望有:
{ text: 'abc123', other values }
如何将两个键合并为一个键(仅text+text1应合并)?
在 Ruby 中,我们有两种方法来获取/设置实例变量 -instance_variable_get和instance_variable_set. 此外,在某些情况下,记住实例变量是一种很好的做法:
@foo ||= 'bar'
Run Code Online (Sandbox Code Playgroud)
因此,我尝试将这 2 个功能结合起来,因为我需要动态实例变量名称:
iv = :@foo
instance_variable_set(iv, 'bar') unless instance_variable_get(iv)
Run Code Online (Sandbox Code Playgroud)
我不确定,但是有没有更优雅的方式来写这个?
我已经建议在文本文件上使用以下代码行:
arr = str.split(/\n{2,}/).map { |s| s.split(/\n/) }
Run Code Online (Sandbox Code Playgroud)
我试图了解如何:
(/\n{2,}/)
Run Code Online (Sandbox Code Playgroud)
部分工作正是它的作用.
我有这样的哈希:
{'yes' => 23,
'b' => 'travel',
'yesterday' => 34,
5 => '234',
:yesss => :fg,
try: 30,
key: 'some value',
'yesterday1' => 34,
'yesteryear' => 2014}
Run Code Online (Sandbox Code Playgroud)
我如何计算包含的所有密钥yes?
为了:
a = [:product_one, :product_two, :product_three]
h = { product_one: 5, product_two: 9, product_three: 4,
product_four: 12, product_five: 20 }
Run Code Online (Sandbox Code Playgroud)
我试图查看哈希键是否与数组值匹配(或者应该相反?我的数组值是否与我的哈希键匹配?)然后获取相应的匹配哈希值并将它们相加。
我的思维.select,如 h.select {|item| h.has_key?(item)}但我坚持用mathing和suming一部分。