ruby对if的布尔判断是很开放的,并不要求if后面必须是布尔量,比如
puts "hi" if 3
输出hi,认为3是true,试了一下,除了
puts "hi" if nil
认为是false不输出hi之外,其他输入比如字符串,数字(即使数字为0),if统统认为是true。这个特点跟java大相径庭,java对if作了严格要求必须为布尔量,在编译的时候可以做检查。ruby由于是动态解释性的,无法在IDE中做类似强校验,因此有些错误是很难察觉的,如以下一段代码:
wanna_do_sth if self.xx=3
本意是想判断self.xx是否等于3,如果真则执行wanna_to_sth,但是由于手误,少写了个=号,这样就惨了,本意不想改变当前实例的属性,但是改了!而且程序跑起来也很顺溜!
这种问题在ruby当中只有到测试和实际运行时,问题才会暴露,很隐秘,但杀伤性很大,系统上线后遇到bug修正,如果引入类似错误,未经全面严格的测试就贸然上传代码覆盖,可能就会引发大麻烦了。
所以David说:小子,用ror一定要写好测试,不然会死得很惨滴!
嘿嘿...
分享到:
- 2008-04-09 18:26
- 浏览 2065
- 评论(4)
- 论坛回复 / 浏览 (4 / 5287)
- 查看更多
相关推荐
ActionPolicy则是Ruby中的一个授权库,它为Rails应用提供了基于对象的策略模式实现,帮助开发者更好地管理权限控制。本文将深入探讨如何将ActionPolicy与GraphQL集成,以在你的Ruby应用中实现安全且灵活的权限管理。...
或者,如果一个列表可能为空,你可以用`if`判断: ```ruby json.posts if @posts.any? do |post| json.title post.title json.body post.body end ``` 在Rails应用中,Jbuilder模板通常与控制器一起使用。在控制...
Ruby-Curly是一种模板语言,它致力于实现结构与逻辑的完全分离,这在Web开发中是一个重要的设计原则。模板引擎的主要任务是将静态的HTML布局与动态的数据结合起来,生成最终的网页内容。Curly就是这样一种工具,它...
Active Merchant是Ruby社区中一个极为重要的库,它为开发者提供了处理在线支付的统一接口。这个库最初来源于著名电子商务平台Shopify,旨在简化各种支付网关的集成工作,使得开发者可以更专注于他们的核心业务逻辑,...
**Ruby-DeclarativeAuthorization** 是一个专门为Rails应用设计的授权插件,它引入了一种声明式的领域特定语言(DSL)来集中管理应用程序的权限规则。这个插件旨在简化身份验证和授权流程,使得开发者可以在代码中...
`ActiveModel::Serializer` 是一个强大的工具,它使得JSON序列化过程更加规范、高效且易于维护。这个库遵循“约定优于配置”(Convention Over Configuration,简称CoC)的设计原则,这是Ruby on Rails框架的核心...
在文件列表中,我们看到有一个名为“Ruby Way.chm”的文件,这很可能是《Ruby Way》电子版的主体内容。CHM是微软的Compiled HTML Help格式,通常用来存储电子书或帮助文档,用户可以通过它来阅读和学习书中关于Ruby...
更重要的是,Ruby有一个非常流行的Web框架——**Ruby on Rails**,它不仅简化了Web应用的开发过程,还极大地推动了Ruby在业界的应用和发展。 #### 二、条件判断语句 条件判断是任何编程语言中的基础概念之一,用于...
《深入探索Ruby编程:elxgo-ruby-advance解析》 Ruby是一种面向对象的、动态类型的编程语言,因其简洁明了的语法和强大的元编程能力而受...对于任何想要在Ruby领域深入发展的程序员来说,这是一个不可多得的学习资源。
"Ruby-para-impacientes" 可能是指针对急于掌握 Ruby 的初学者所设计的一个快速上手教程。这个教程可能注重实用性,旨在帮助学习者尽快了解并开始使用 Ruby 进行编程。 在 Ruby 中,基础概念包括变量、数据类型、...
在给定的"ruby-course"中,你将学习如何使用`If / Else`来创建一个简单的交互式程序。这个程序会询问用户最喜欢的颜色,并根据用户输入给出相应的回应。下面是一个示例代码: ```ruby puts "请输入你最喜欢的颜色:...
"ruby-blackjack"项目就是一个基于Ruby实现的简单黑杰克(Blackjack)游戏。黑杰克是一种流行的纸牌游戏,目标是在不超出21点的情况下尽可能接近这个数字。让我们深入探讨一下这个项目中的相关知识点。 1. **Ruby...
5. **条件判断**:Ruby中的`if`语句和`case`语句在游戏逻辑中扮演重要角色,比如判断玩家是否爆牌,庄家是否必须继续要牌直到达到17点等。 6. **循环与迭代**:游戏过程可能涉及多次迭代,如玩家和庄家轮流要牌,这...
通过系统学习Ruby语言的基本原理、编程技巧以及实践应用,不仅可以成为一名合格的Ruby程序员,还能在Web开发、脚本编程等多个领域发挥重要作用。希望每位学习者都能在Ruby语言的学习过程中不断进步,最终成为该领域...
Ruby还是一个面向对象的语言,每个值都是一个对象,包括基本类型如数字和字符串。类和对象是Ruby的核心概念,你可以自定义类并创建实例。例如,创建一个名为`Person`的类并初始化姓名: ```ruby class Person def ...
- Ruby的一个著名应用是Web开发框架Rails,它遵循MVC架构,提供许多便利的工具和约定。 以上只是Ruby编程基础的一部分,深入学习还需结合实际项目和具体API类库的使用。在阅读这份英文文档时,你可以借助翻译工具...
本篇文章旨在提供一个关于Ruby on Rails基础知识的概览,帮助初学者快速上手。 #### 二、方法概述 在Ruby on Rails中,方法是执行特定任务的基本单元。以下列举了一些常用的方法: 1. **字符串处理方法**: - `...
- `if`、`unless`用于条件判断,`case`语句提供多条件分支。 - `for`、`while`、`until`用于循环,`each`迭代器是Ruby中常用的遍历工具。 - `break`、`next`和`redo`控制循环流程。 3. **函数和方法** - Ruby中...
- **文档工具**:ri是一个内置于Ruby中的文档查看器,可以帮助开发者查阅内置类和方法的文档。 ##### §2.5 RubyGems - **包管理系统**:RubyGems是一个用于管理和分发Ruby软件包的系统,类似于Python的pip。 ####...
- **编写第一个程序**:创建一个简单的Ruby程序,例如输出“Hello, World!”,可以帮助初学者快速了解Ruby的基本语法。 - **集成开发环境**:选择合适的IDE或编辑器(如RubyMine、Visual Studio Code等),可以提高...