`
dondon
  • 浏览: 10474 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ruby Trick

阅读更多
很喜欢http://www.rubyinside.com这个网站,里面记载了一些Ruby相关的新闻,以及技术相关的,这里爬几个可能会用到的Ruby Trick.

1. 分解枚举

a = %w{a b}
b = %w{c d}
[a + b]                              # => [["a", "b", "c", "d"]]
[*a + b]                             # => ["a", "b", "c", "d"]
a = { :name => "Fred", :age => 93 }
[a]                                  # => [{:name => "Fred", :age =>93}]
[*a]                                 # => [[:name, "Fred"], [:age, 93]]
a = %w{a b c d e f g h}
b = [0, 5, 6]
a.values_at(*b).inspect              # => ["a", "f", "g"]

2. 不用String 或是 Symbol做hash的键

does = is = { true => 'Yes', false => 'No' }
does[10 == 50]                       # => "No"
is[10 > 5]                           # => "Yes"

3.快速赋值

a, b, c, d = 1, 2, 3, 4

def my_method(*args)
  a, b, c, d = args
end

def initialize(args)
  args.keys.each { |name| instance_variable_set "@" + name.to_s, args[name] }
end

4. 使用Range

# if x > 1000 && x < 2000
year = 1972
puts  case year
        when 1970..1979: "Seventies"
        when 1980..1989: "Eighties"
        when 1990..1999: "Nineties"
      end

5. DRY很彻底

%w{rubygems daemons eventmachine}.each { |x| require x }

6. 使用三目运算符(有一天我居然听说一个我的同事工作了六七年,说没用用过这个操作符,天啊,什么世道?什么公司敢用这样的程序员? 和这样的工作,很危险)

def is_odd(x)
  # Wayyyy too long..
  if x % 2 == 0
    return false
  else
    return true
  end
end

=>

def is_odd(x)
  x % 2 == 0 ? false : true
end

==》

def is_odd(x)
  # Use the logical results provided to you by Ruby already..
  x % 2 != 0
end

7. 写程序要捕捉异常

def do_division_by_zero
   5 / 0
end

begin
  do_division_by_zero
rescue => exception
  puts exception.backtrace
end

8. 确保有东西可迭代

items = "hello"
[*items].each do |item|
  # ...
end

9 捕获异常不一定非要有begin

def x
  begin
    # ...
  rescue
    # ...
  end
end

=>

def x
  # ...
rescue
  # ...
end

10. 块注释

puts "x"
=begin
  this is a block comment
  You can put anything you like here!

  puts "y"
=end
puts "z"

11 rescue to the rescue

h = { :age => 10 }
h[:name].downcase                         # ERROR
h[:name].downcase rescue "No name"        # => "No name"
分享到:
评论

相关推荐

    Trick

    "Trick"这一主题似乎与一套特别的字体资源相关,其中包括多种不同风格的图像文件(.gif)和TrueType字体文件(.TTF)。让我们深入探讨一下这个话题。 首先,.gif 文件是一种常见的图像格式,支持透明度和动画,常...

    Hattrick球场上座率概算

    Hattrick球场上座率概算 Hattrick球场上座率概算

    重修 Slope Trick(看这篇绝对够!).doc

    ### 重修 Slope Trick 技术解析 #### 一、引言 Slope Trick,作为一项优化动态规划(DP)问题的技术手段,在算法竞赛领域里占有重要地位。该技术的核心在于利用函数斜率的变化来简化计算过程,尤其是在面对那些代价...

    The Kernel Trick.pdf

    在机器学习中,核技巧(Kernel Trick)是一种非常重要的技术,它允许我们在高维特征空间中有效地进行线性学习算法的操作,而无需显式地计算出高维空间的数据表示。核技巧在诸如支持向量机(SVM)等算法中发挥了重要...

    python-trick

    Python-trick,上传的事pdf文档

    arp_trick.tar.gz

    在ARP_trick.tar.gz这个压缩包中,我们可以预期包含有关如何执行和防御ARP欺骗的相关资料。可能包括了以下内容: 1. **ARP协议原理**:首先,理解ARP的工作机制至关重要。当主机需要发送数据到某个IP地址时,它会...

    Hat_Trick_The Catch Game.unitypackage

    Hat Trick是Unity官方商店提供的5.5.0版本以上的一款游戏Demo。

    神经网络训练Trick 训练技巧.docx

    ### 神经网络训练Trick详解 #### 引言 神经网络训练是深度学习领域的一个核心环节,其效果的好坏直接影响着模型的性能。在实际应用中,开发者经常会遇到模型训练不佳的情况,这时就需要一系列的技巧(Tricks)来...

    trick:特技模拟环境。 Trick提供了一组通用的仿真功能和实用程序,可以自动构建仿真

    由NASA约翰逊航天中心开发的Trick仿真环境是一个功能强大的仿真开发框架,使用户能够为航天器开发的所有阶段构建应用程序。 特里克(Trick)加快了仿真的创建过程,以进行早期飞行器设计,性能评估,飞行软件开发,...

    trick_bag:各种Ruby类和方法来简化和增强您的代码

    特技袋各种Ruby类,模块和方法,以简化和增强您的代码。安装将此行添加到您的应用程序的Gemfile中: gem 'trick_bag'然后执行: $ bundle或将其自己安装为: $ gem install trick_bag用法理解用法的最佳方法是查看a...

    db_trick.sql

    db_trick.sql

    linux shell trick

    Linux Shell技巧是Linux系统操作中的重要组成部分,它是一种命令行接口,允许用户通过文本命令与操作系统进行交互。Shell脚本可以极大地提高效率,自动化日常任务,并且是系统管理员的得力工具。...

    vdr-hattrick-开源

    VDR-Hattrick是一款专为视频磁盘录像机(Video Disk Recorder, VDR)设计的开源插件。这款插件的出现,旨在为VDR用户提供一个独特的体验,即在观看电视节目的同时,能够实时查看在线足球游戏“Hattrick”的比赛情况...

    Hattrick Ranking-开源

    Hattrick Ranking,一款专为在线游戏Hattrick设计的CHPP(Hattrick个人程序插件)批准的应用程序,为玩家提供了一个独特的功能,即创建自定义的排名系统,以更深入地对比和分析Hattrick中的各支球队。这款开源软件的...

    支持向量机之Kernel Trick.pdf

    "支持向量机之Kernel Trick.pdf" 支持向量机(SVM)是一种常用的机器学习算法,特别是在分类和回归问题中。然而,在解决线性不可分问题时,SVM 需要使用 Kernel Trick。Kernel Trick 是一种将输入空间映射到高维...

    zoj 2247 Magic Trick.md

    zoj 2247 Magic Trick.md

    Hattrick Organizer Plugins-开源

    《Hattrick Organizer Plugins——开源的力量与Java的魅力》 在当今的数字时代,开源软件已经成为了推动技术进步的重要引擎,而Hattrick Organizer Plugins正是这一趋势的杰出代表。这款基于Java开发的插件集合,为...

    trick-plugin:将Trick整合到Jenkins中

    dev分支是Trick插件的主要开发分支。 从dev克隆以创建功能/主题分支是首选方法。 为插件做贡献 插件源代码托管在。 新功能建议和错误修复应作为提交。 在GitHub上克隆存储库,准备对本地存储库的更改,然后提交拉取...

    Hattrick Economy-开源

    《Hattrick Economy开源解析与应用》 在数字化时代,开源软件已经成为技术创新的重要驱动力,其开放、共享的特性使得全球开发者能够共同参与到项目的开发与完善中,为各种领域带来了无数创新解决方案。今天我们将...

Global site tag (gtag.js) - Google Analytics