相关疑难解决方法(0)

map(&:name)在Ruby中意味着什么?

我在RailsCast中找到了这段代码:

def tag_names
  @tag_names || tags.map(&:name).join(' ')
end
Run Code Online (Sandbox Code Playgroud)

什么是(&:name)map(&:name)意味着什么?

ruby syntax operators parameter-passing

483
推荐指数
11
解决办法
12万
查看次数

按键排序哈希,在Ruby中返回哈希

这是排序哈希并返回哈希对象(而不是数组)的最佳方法:

h = {"a"=>1, "c"=>3, "b"=>2, "d"=>4}
# => {"a"=>1, "c"=>3, "b"=>2, "d"=>4}

Hash[h.sort]
# => {"a"=>1, "b"=>2, "c"=>3, "d"=>4}
Run Code Online (Sandbox Code Playgroud)

ruby sorting hashmap

249
推荐指数
7
解决办法
17万
查看次数

标记未使用的块变量

当存在不使用的块或局部变量时,有时人们*会用它来标记,有时候用_.

{[1, 2] => 3, [4, 5] => 6}.each{|(x, *), *| p x}

{[1, 2] => 3, [4, 5] => 6}.each{|(x, _), _| p x}

{[1, 2, 3], [4, 5, 6]}.each{|*, x, *| p x}

{[1, 2, 3], [4, 5, 6]}.each{|_, x, _| p x}

def (x, *), *; p x; end

def (x, _), _; p x; end

def *, x, *; p x; end

def _, x, _; p x; end
Run Code Online (Sandbox Code Playgroud)

他们之间有什么区别,我什么时候应该使用哪个?当需要将多个变量标记为未使用时,如上例所示,是否更好?

ruby variables block

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

按嵌套值排序哈希值

我的哈希看起来如下.我希望输出是相同的哈希形式,但根据价格排列哈希.

{
  1=>{
    "name"=>"Mark", 
    "date"=>"27/08/2015", 
    "bed"=>"3", 
    "furnish"=>"Fully", 
    "size"=>"10", 
    "price"=>790000
  }, 
  2=>{
    "name"=>"Mark", 
    "date"=>"27/08/2015", 
    "bed"=>"3", 
    "furnish"=>"Fully", 
    "size"=>"10", 
    "price"=>720000
  }, 
  3=>{
    "name"=>"Mark", 
    "date"=>"27/08/2015", 
    "bed"=>"3", 
    "furnish"=>"Fully", 
    "size"=>"10", 
    "price"=>750000
  }, 
  4=>{
    "name"=>"Mark", 
    "date"=>"27/08/2015", 
    "bed"=>"3", 
    "furnish"=>"Fully", 
    "size"=>"10", 
    "price"=>710000
  }
} 
Run Code Online (Sandbox Code Playgroud)

我读过如何按数值对Ruby Hash进行排序?但它只是一个嵌套的哈希.对我如何实现这一目标完全无能为力.如果你们中的任何一个愿意帮助我,将不胜感激.

ruby hash

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