如果给定的块类型是整数,如何在ruby哈希中添加元素?
我编写了代码如果给定的块类型是整数,如何在ruby哈希中添加元素?,ruby,Ruby,我编写了代码:format=>“integer”if x.is|u a?来添加:format当|x |是唯一的整数类型时。但它没有被编译。ruby是如何表达这段代码的?只需在另一条语句中添加:format: def self.jq_column_models COLUMN_NAME.collect {|x| {:name => x.to_s, :width => 80, :format => 'integer' if x.is_a?(Fixnum)} } end
:format=>“integer”if x.is|u a?
来添加:format
当|x |
是唯一的整数类型时。但它没有被编译。ruby是如何表达这段代码的?只需在另一条语句中添加:format
:
def self.jq_column_models
COLUMN_NAME.collect {|x|
{:name => x.to_s, :width => 80, :format => 'integer' if x.is_a?(Fixnum)}
}
end
只需在另一条语句中添加
:format
:
def self.jq_column_models
COLUMN_NAME.collect {|x|
{:name => x.to_s, :width => 80, :format => 'integer' if x.is_a?(Fixnum)}
}
end
好的,那么您必须使用两个语句:
h = {:name => x.to_s, :width => 80}
h[:format] = 'integer' if x.kind_of? Integer
好的,那么您必须使用两个语句:
h = {:name => x.to_s, :width => 80}
h[:format] = 'integer' if x.kind_of? Integer
您可以使用(屈服自我;自我):
您可以使用(屈服自我;自我):
def self.jq_column_模型
列名称。每个带有对象([])do | x的列,备注|
h={:name=>x.to_s,:width=>80}
h[:format]=“如果x.is_a,则为整数”(Fixnum)
备注def self.jq_column_模型
列名称。每个带有对象([])do | x的列,备注|
h={:name=>x.to_s,:width=>80}
h[:format]=“如果x.is_a,则为整数”(Fixnum)
备忘只是为了补充其他答案,这是一个不涉及陈述的功能性解决方案。首先,将此通用方法添加到扩展库:
def self.jq_column_models
COLUMN_NAME.each_with_object([]) do |x,memo|
h = {:name => x.to_s, :width => 80}
h[:format] = 'integer if x.is_a?(Fixnum)
memo << h
end
end
现在使用它:
class Hash
def with_values
select { |k, v| block_given? ? yield(v) : v }
end
end
当然,如果nil
是一个合法的值(通常不应该是这样),这就不起作用了。只是为了补充其他答案,一个不涉及语句的功能解决方案。首先,将此通用方法添加到扩展库:
def self.jq_column_models
COLUMN_NAME.each_with_object([]) do |x,memo|
h = {:name => x.to_s, :width => 80}
h[:format] = 'integer if x.is_a?(Fixnum)
memo << h
end
end
现在使用它:
class Hash
def with_values
select { |k, v| block_given? ? yield(v) : v }
end
end
当然,如果nil
是一个合法的值(通常它不应该是这样的),这将不起作用。我无法理解您真正想要的是什么,但是您缺少是一个方法的参数。也许你的意思是x.is\u a?(Fixnum)
…我无法理解你真正想要什么,但是你缺少is\u a?
方法的参数。也许你的意思是x.is_a?(Fixnum)
…有没有理由把一个漂亮的map
转换成一个详细的带有对象的每个
?(这是一个映射):-)每个带有对象的对象都是冗长但美丽的方法现在我不知道你是认真的还是开玩笑。你的意思是写xs更好。每个带有对象的对象([]){x,memo | memo好吧,我认为映射不太合适,所以我提出了每个带有对象的解决方案,但现在我认为尤里·巴巴肖夫的解决方案是最好的答案。有什么理由把一个漂亮的映射
转换成一个冗长的每个带有对象的对象
?(这就是映射):-)每个带有对象的_都是冗长而美丽的方法现在我不知道你是认真的还是开玩笑的。你的意思是最好写xs。每个带有对象的_([]){| x,memo | memo |嗯,我认为map不太合适,所以我提出了每个| u的对象解决方案,但现在我认为尤里·巴巴肖夫的解决方案是最好的答案。一个问题:在你的项目中,你会写这个或两行作业+有条件的更新吗?这一个,因为它是railsway一个他的或两行作业+有条件更新?这一个,因为它是一个)