empty!和empty?方法
Ruby的方法名可以用感叹号(爆炸方法)或者问号(断言方法)结尾。爆炸方法通常会对接收者造成破坏,断言方法则根据某些条件返回ture或false。
a||b
a||b表达式会对a进行求值。如果a的结果不是false或nil。那么求值就些结束,返回a的值;否则,该语句会返回b的值。这种方式通常用于表达“如果某个值没有被设置,则返回缺省值”。
a||=b
赋值语句支持一组简写方式:a op =b就等价于a = a op b。对于大部分操作符,这样的简写都有效。
count +=1
price *=discount
a||=b的意思就是:如果a没有被设以别的值,就将b赋给它。
obj = self.new
class Person < ActiveRecord::Base
def self.for_dave
Person.new(:name =>Dave)
end
end
class Employee <Person
...
end
dave= Employee.for_dave
Employee.for_dave方法返回Person对象。如果改用self.new,方法就会返回Employee类的实例,回为接收到这次方法调用的是Employee。
相关资源:
http://www.glue.umd.edu/protect-billti/ruby.html
http://www.rubygarden.org/faq
http://en.wikipedia.org/wiki/Ruby_programming_language
http://www.zenspider.com/Languages/uby/QuickRef.html
分享到:
相关推荐
### Ruby惯用法详解 #### 一、简介 Ruby是一种简单快捷的面向对象的脚本语言,具有丰富的类库和简洁的语法结构。在实际开发过程中,为了提高代码的可读性和可维护性,Ruby社区形成了一系列约定俗成的惯用法(idioms...
在Ruby社区中,惯用法(idioms)和最佳实践(best practices)是提高代码质量的关键。本文将深入探讨Ruby中的关键技巧、重构方法以及遵循的代码风格指南。 一、Ruby技巧 1. 块和迭代器:Ruby中的块(blocks)和...
在讲述Ruby知识的过程中,始终从Rails开发实战出发,揭示Rails和Puby之间的微妙关系,阐述Rails自身特有的技术、惯用法和设计理念,并用Rails开发了一个网上音乐店实例。最后还介绍了探索Rails源代码的各种技术,为...
1. **Ruby idioms**:书中将深入探讨Ruby的惯用法,这些是让代码更简洁、更具Ruby风格的关键。 2. **编程技巧**:如何利用Ruby的特性编写出高效且易于维护的代码,如上下文敏感的语法糖和内建函数的巧妙使用。 3. ...
6. 惯用法和语言扩展:书中还可能会介绍Ruby中的惯用法,以及如何通过元编程进行语言扩展和自定义。这些高级特性是Ruby语言灵活多变的重要原因,也是使Ruby成为一门值得学习的语言的关键特性之一。 7. 历史影响:...
通过学习Ruby,开发者可以更容易地理解和运用这些惯用法。 - **扩展性**:Ruby的强大之处在于其高度的灵活性和可扩展性。掌握了Ruby,开发者就能够根据自己的需求灵活地扩展Rails的功能,创造出更加符合业务场景的...
4. Rails技术、惯用法和设计理念:本书还涵盖了Rails特有的技术点、编程惯用法以及Rails的设计哲学,这些都是构建Rails应用时不可忽视的重要方面。 5. 实战项目:作者通过构建一个网上音乐店的实例来展示如何使用...
它实现了一种以声明方式编写某些类型的代码的惯用法。 特别是,这是为了使Rails控制器和视图更整洁。 安装BasicAssumption 这是一颗宝石,通常也是如此: [sudo] gem install basic_assumption 在Rails应用程序...
3. **惯用法(Idiomatic)**:在编程领域,惯用法是指在特定编程语言或社区中广泛接受的最佳实践,它有助于保持代码的一致性和可读性。 4. **Sublime Text**:Sublime Text是一款流行的文本编辑器,以其速度、简洁...
2. **构架建模惯用法**:为了确保构架模型的一致性和清晰性,通常会采用一套固定的建模惯用法。例如,在用例视图中,用例通常会被命名为描述性的动作短语,以便于理解其功能。 #### 八、结论 综上所述,技术框架在...
5. **C抽象惯用法**:在C语言中,有一些约定俗成的做法可以帮助提高代码的可读性和可维护性。 6. **C的抽象范式之OOP**:虽然C语言本身不支持面向对象编程,但可以通过指针等机制来模拟OOP的概念。 7. **C的观点:...