Tag: 编码式

预期收益的`#=>`约定

使用#=>描述预期回报是一种Ruby约定。 我意识到我自己使用# => (带有一些空格或标签)。 这只是一个约定,并没有正式的规范,所以我想问一下Ruby程序员的惯例是什么。 是 #=>唯一正确的方式或首选, # =>是首选,或 两者几乎同样使用? 并且,是否有任何理由排除或更喜欢一种forms?

Ruby函数调用括号的主要风格是什么?

假设我有func_a和func_b都接受一个参数,我想将func_b的结果func_b给func_a 。 括号内最常见的方法是什么? func_a func_b input func_a func_b(input) func_a(func_b input) func_a(func_b(input))

确保单个类实例的正确方法是什么?

在java中我会创建这样的东西: private static MyClass instance; public static MyClass getInstance() { if(instance != null) { return instance; } instance = new MyClass(); return instance; } 在ruby中获取相同function的适当方法是什么? 更新:我读过’包含Singleton’,但是当我尝试在Ruby 1.9上使用irb时,我得到了: [vertis@raven:~/workspace/test]$ ruby -v ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin9.4.0] [vertis@raven:~/workspace/test]$ irb irb(main):001:0> class TestTest irb(main):002:1> include Singleton irb(main):003:1> end NameError: uninitialized constant TestTest::Singleton from (irb):2:in `’ from (irb):1 […]

如何将rubocop与Rake集成?

rubocop是Ruby的代码样式检查器。 一个类似于rubocop的工具,Cane,可以与Rake集成 。 我更喜欢rubocop to Cane,因为rubocop根据Ruby Style Guide进行检查,它似乎发现了更多的问题 。 为了自动化样式检查过程,我想将rubocop与Rake集成,以便在缺少代码质量时构建失败。 Gem已经支持通过Rake向包添加测试 。 我想对样式检查做同样的事情,以便样式检查与测试一起运行。 我怎样才能做到这一点? 如果有一个Rake文件的帮助,这里有一个: # -*- coding: utf-8; mode: ruby -*- require ‘bundler/gem_tasks’ require ‘rake/testtask’ Rake::TestTask.new do |t| t.libs << 'test' t.test_files = FileList['test/unit/test*.rb'] end desc 'Run tests' task default: :test

迭代比线性代码慢吗? 哪个更好?

从最近几天开始,我脑子里有一个问题,那就是在ruby中编写代码时,线性代码比迭代更快更好吗? 让我举个例子。 有两个不同方式的相同function代码块: 方式1: [‘dog’, ‘cat’, ‘tiger’].each do |pet_name| puts “I have many pets, one of them is #{pet_name}.” end 方式2: puts “I have many pets, one of them is dog.” puts “I have many pets, one of them is cat.” puts “I have many pets, one of them is tiger.” 所以,我想知道哪一个更好,更可取? 根据我的观点,我认为第二个将花费更少的时间和记忆。 但我想证实一下。

Ruby中的失败与提升:我们真的应该相信风格指南吗?

Ruby提供了两种以编程方式引发exception的可能性: raise和fail ,两者都是Kernel方法。 根据文件,它们绝对相同。 出于习惯,我到目前为止只使用了raise 。 现在我找到了一些建议(例如这里 ),使用raise来捕获exception,并且对于不应该处理的严重错误而fail 。 但它真的有意义吗? 当你编写一个类或模块,并导致内部问题,你发出错误信号时,正在审查代码的编程同事可能会很高兴地理解你的意图,但使用我的代码的人很可能看不到在我的代码中无法知道exception是由raise还是由fail引起的。 因此,我谨慎使用raise或fail不会对他的决定产生任何影响,无论她是否应该处理。 有人会在我的论点中看到缺陷吗? 或者是否有其他标准,我可能想要使用fail而不是raise ?

我应该如何利用Ruby?

ruby? ruby? ruby? 什么样的好风格? 我知道答案 – 我只想确保问题在那里,提问者知道有正确的表格。 另外,我应该将“gem”资本化为“创业板”吗? class TestLanguageName < Test::Unit::TestCase def test_language_name assert_correct_language_name StackOverflow.new.describe_language("RuBy") end end class StackOverflow def describe_language(string) # Which of the following? methods = [:upcase, :capitalize, :downcase] string.send(methods[rand(3)]) end end