Web Development 的學習之旅

2007/06/27

Code Spot

底下的 code 摘自 Ruby for Rails:

class Customer < ActiveRecord::Base
def nice_name
title + " " + first_name + " " +
(if middle_initial then middle_initial + ". " else "" end) +
last_name
end
end

粗體字的部份是一段 if 語法會傳回一個字串, 所以意思就是若 middle_initial 不是空字串時則傳回 middle_initial+". ", 否則傳回一個空字串. 整個判斷語法被當成一個字串使用, 不需要像一般的 language 這樣寫:
def nice_name
if middle_initial then m=middle_initial+". " else m=""
title + " " + first_name + " " + m + last_name
end

這種用法在適當的時候可以讓 code 做更好的呈現, 我覺得更適合人類閱讀.

沒有留言: