2 mem fox mem_fox 于 2016.03.01 00:48 提问

怎么能把这段Ruby代码改的更像Ruby的

def match_standard?()
standard = StandardBodyGrith.find_by_leight_and_sex(1700,'M')
print standard
print shoulder
is_match = Array.new(6)
is_match[0] = shoulder < standard.shoulder
is_match[1] = chest < standard.chest
is_match[2] = arm_relaxed < standard.arm_relaxed
is_match[3] = waist < standard.waist
is_match[4] = hip < standard.hip
is_match[5] = thigh < standard.thigh
return is_match
end

2个对象的shoulder/chest/arm relaxed/waist/hip/thigh 6个属性是一一对应的,我怎么比较直接生成一个boolean的数组?

3个回答

devmiao
devmiao   Ds   Rxr 2016.03.08 13:01

可以用hashtable

liuk10
liuk10   2016.04.01 08:15

1,在ruby中一般不用return,因为方法最后一行的执行结果就是返回值
2,定义方法时,如果没有参数,一般不写括号
3,这种场景下用Hash很合适,当然如果需要Array类型也是可以的。

4,具体修改如下:
(1)返回数组
def match_standard?
standard = StandardBodyGrith.find_by_leight_and_sex(1700,'M')
print standard
print shoulder

[
  shoulder < standard.shoulder,
chest < standard.chest,
arm_relaxed < standard.arm_relaxed,
waist < standard.waist,
hip < standard.hip,
thigh < standard.thigh
]

end

(1)返回Hash
def match_standard?
standard = StandardBodyGrith.find_by_leight_and_sex(1700,'M')
print standard
print shoulder

{
  shoulder:      shoulder < standard.shoulder,
chest:           chest < standard.chest,
arm_relaxed: arm_relaxed < standard.arm_relaxed,
waist:           waist < standard.waist,
hip:              hip < standard.hip,
thigh:           thigh < standard.thigh
}

end

liuk10
liuk10   2016.04.01 08:17

答案提交了以后不能再编辑吗???我想调整下格式。。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
10个惊艳的 Ruby单行代码
有人想出了Scala的10个单行代码例子。然后Coffee版本迅速崛起,于是我想到发布一个Ruby版本的。我觉得Ruby的语法比Scala清洁点,虽然实质上(至少就这些例子来说)是比较相似的。 1.数组中的每个元素乘以2 (1..10).map { |n| n * 2 } 2.数组中的元素求和 (1..1000).inject { |sum, n| sum + n
Ruby—关于Button跳转
这里有两种可以用的: 1.  New Post'.html_safe, product_path %> 2.New Post &raquo;
ruby 代码风格
原文链接:     https://github.com/JuanitoFatas/ruby-style-guide/blob/master/README-zhCN.md 身为 Ruby 开发者,有件总是令我烦心的事——Python 开发者有一份好的编程风格参考指南(PEP-8)而我们永远没有一份官方指南,一份记录 Ruby 编程风格及最佳实践的指南。我确信风格很
Ruby erb模板文件生成html网页的示例
​通过一个简单的示例演示如何通过erb.html或者html.erb模板文件,通过ruby erb模块的动态绑定生成html文件。 HelloJohn.erb.html即模板文件,name.rb文件为模板文件中的变量,test.rb将变量和模板文件进行动态绑定,输出html文件,结果如下图。 #HelloJohn.erb.html文件
Ruby Benchmark 模块提供了测量和报告Ruby代码运行使用时间的方法。
Ruby Benchmarkruby 默认带的 Benchmark模块提供了测量和报告Ruby代码运行使用时间的方法。1、用给定的表达式"a"*1_000_000构造字符串来测量时间:require 'benchmark' puts Benchmark.measure { "a"*1_000_000 } 在我们的机器上 (FreeBSD 3.2 on P5, 100MHz) 生成的结果:1.166667 0.050000 1.216667 ( 0.571355)这个报告显示我们的CPU时间,系统CPU时间
如何利用工具写出优秀的Ruby代码?
介绍使用几种工具,改善我们的代码。
ruby和linux shell共同编程的示例
有了shell为毛还要ruby呢?话不能这么说,有些小功能用ruby还是很方便的,比如说字符串的反转再加1功能用shell来写就比较麻烦.str="123456",我们定义一个反转后再+1的小方法: 2.1.5 :020 > class String 2.1.5 :021?> def r_add_1 2.1.5 :022?> replace reverse.each_byte.map
Ruby on Rails 添加页面
本文主要介绍怎样用静态页面在 Ruby on Rails 中是如何生成并返回给浏览器的首先,我们需要生成一个controller,起名 static_pages:$ rails generate controller static_pages执行这个命令会在 app/controller 目录下生成一个名叫static_pages_controller.rb的文件,它的内容如下:class Stat
在控制台运行ruby文件代码
1.前提是已经安装配置好ruby的运行环境,没有安装的话去官网下载安装https://rubyinstaller.org/downloads/ 2.运行ruby文件 2.1首先打开记事本,写ruby代码,这里我只写了一句输出hello,Ruby!的语句,然后保存,保存的文件后缀名一定是.rb       这里我的文件名是test.rb      保存的位置是E
Ruby on Rails调试经验分享
首先,而且也是最重要的就是,编写测试代码,在Rails里编写单元测试和功能测试都很简单,使用它们,可以减低bug发生率,也可以避免在你从前的代码中突然出现bug。 测试代码告诉你哪些东西能够工作,哪些不能,并且,测试代码帮助你隔离那些有问题的代码,因为有时候bug并非很快地表现出来。 如果Ruby on Rails调试问题发生在一个Model中,我们可以使用脚本script/console来模