Eloquent Ruby (Chapter 2) 手记

1. If, Unless, While, and Until

基于unless的语句有2个好处: 第一, 它比if not要短。第二, 一旦你习惯用它, 你可以轻松的去理解它。前提是你需要熟悉它,如果不熟悉, 你就像穿错了鞋。 但是对于大多数的程序员来说, 已经习惯于unless。

2. Use the Modifier Forms Where Appropriate

你可以使用:

@title = new_title unless @read_only

也可以使用

@title  = new_title if @writable

同样: 你可以使用

document.print_next_page while document.pages_available?

也可以使用

document.print_next_page until document.printed?

你可以灵活的使用它,但是要使他们像这样易读:Do this if that.

3. Use each, Not for

for是基于each实现的, 为什么你不直接用each呢? 抛弃for吧。

4. A Case of Programming Logic

case语句是用===操作符来做比较的。尽量使用case吧。

5. Staying Out of Trouble

Ruby只认false和nil为false 记住:

puts 'Sorry Dennis Ritchie, but 0 is true!' if 0
puts 'Sorry but "false" is not false' if 'false'
#  均会打印
最近的文章

Eloquent Ruby (Chapter 3) 手记

1. Literal ShortcutsArray和Hash可以用方便的字面量结构来定义:poem_words = %w {twinkle little star how i wonder}或括号:poem_words = %w (twinkle little star how i wonder)Hash在Ruby1.9之后,有更方便的写法:book_info = {first_name: ‘Russ’, last_name: ‘Olsen’}2. Instant Arrays and...…

继续阅读
更早的文章

xss csrf 捋之(2) some转义for抗xss

1.任何js runtime的解决方案XML HTML字符实体var keys = Object.keys || function(obj) { obj = Object(obj) var arr = [] for (var a in obj) arr.push(a) return arr}var invert = function(obj) { obj = Object(obj) var result = {} for (var a in ...…

继续阅读