More link_to

by winson, about 1 year ago.

在Rails的rhtml中,link_to的作用是把資料庫的某一筆資料丟給別的action去處理。

例如: 網路書店的書籍清單畫面,可能是一個book_list action搭配view所展示的,裡面可能會有一個add_to_cart的購物車action,利用link_to可以把某一本書丟進購物車。

所以


  • Posted in Sugar, on Friday, March 30, 2007, at 01:09 AM.

Prime Number Reloaded

by winson, about 1 year ago.

請以一行程式列出比輸入值小的所有質數。例如,輸入20則列出2, 3, 5, 7, 11, 13, 17, 19。

}/$+)?+11(^|$?1^/ ~! t * '1' fi t stup |t|{ )i_ot.)(steg(otpu.1

  • Posted in Ruby, Sugar, on Sunday, March 25, 2007, at 11:51 PM.

Hello World Reloaded

by winson, about 1 year ago.

請以一行程式列出1到100的數字,但3可除盡代換為”hello”;5可除盡代換為”world”;3和5都可除盡則代換為”helloworld”,其餘維持原數字。

} n : 'dlrow' ? 0 == 5 % n : 'olleh' : 'dlrowolleh' ? 0 == 5 % n ? 0 == 3 % n stup |n| { )001(otpu.1

  • Posted in Ruby, Sugar, on Sunday, March 25, 2007, at 11:46 PM.

Duck Typing

by winson, about 1 year ago.

弱型別(Weak-typed)語言令人詬病的地方就是不對變數做型別檢查,甚至不需要宣告變數。Ruby就是一套不需要做變數宣告以及不檢查變數型別的語言。

當然,強型別(Strong-typed)語言最大的優點就是編譯時期可以先知道變數型別,以致於編譯過後能夠加快程式的執行速度;但Ruby身為一套持續演進中的、嶄新的程式語言,豈有不將這一大優點納入的理由?

因為Ruby對於型別檢查有了新的解釋,在Programming Ruby第23章有非常精闢的解釋,同時也完整闡述了Ruby的設計理念,非常值得參考。

與其要問什麼是型別(Type),不如先說什麼是鴨子(Duck)好了。那麼,什麼是鴨子?你稱呼他是鴨子,就是一隻鴨子嗎?鴨子的定義在哪裡?


  • Posted in Sugar, on Saturday, March 24, 2007, at 09:09 AM.

Rubyism

by winson, about 1 year ago.

輕便、簡單,可以快速實現自己的想法。這不是我對Ruby的溢美之詞,因為光這兩句話還不足以盛讚Ruby呢。

相信有很多人像我一樣,是因為Ruby On Rails才開始接觸Ruby的,無論從哪一種途徑開始接觸Ruby,那都無妨。這一玩下去才知道,我根本不想走回其他語言的老路。

如果說C語言是一首交響樂的話,那麼Ruby就是爵士樂了;在Ruby裡頭幾乎很難看到刁鑽的觀念或艱深的語法,取而代之的卻是想怎麼寫就怎麼寫的即興玩法。

玩Ruby不需要熟讀厚厚的手冊,隨便一條程式就可以印出大家習以為常的”Hello, world!!”。那更別說Ruby把字串、迴圈、物件、檔案IO變的如此平易近人了啊。

第一次聽說過程式語言去開檔案處理完還會自動幫你關掉的作法,覺得不習慣嗎?但本來就該這樣子啊。這就是Rubyism啊。Ruby讓程式設計員可以專注在解決問題,而非製造問題上。

事實上,程式設計者也許要反過來習慣Ruby的思考邏輯,因為在程式設計的世界,號稱寫一次到處都能跑或是連學生都能輕易上手的程式語言到處都是。但是積極主張”快樂寫程式”的程式語言(好像書腰帶上的廣告喔),應該沒聽說過吧。

集合現有程式語言中好用的東西,刪除或簡化囉唆的東西。這就是Ruby。


  • Posted in Sugar, on Thursday, March 22, 2007, at 02:57 AM.

Parallel Assignment

by winson, about 1 year ago.

學語言一定都遇過這類問題,如何交換兩個變數的值?一般是這樣子做的:
int a = 1;
int b = 2;
int temp = a;
int a = b;
int b = temp;
這麼囉唆的語法,到了Ruby變成這樣子:

  • Posted in Ruby, Sugar, on Wednesday, March 21, 2007, at 12:10 AM.

Human Interface

by winson, about 1 year ago.

自從上次猜到object.reverse這麼簡單就可以直接反向排序之後,現在不得不再度稱讚一下Ruby。

因為之前閱讀UML精華熟知馬汀大師,他提出一個Human Interface的概念。

舉個例子,假設取串列最後一個元素:


  • Posted in Sugar, on Tuesday, March 20, 2007, at 04:22 AM.

Hello World

by winson, about 1 year ago.

class MidnightRubyistController < ApplicationController
def sayHello
  render_text("Hello, world!!")
end
因為常在半夜搞Ruby/ Rails,所以請叫我午夜盧比人吧!!

  • Posted in Sugar, on Monday, March 12, 2007, at 10:07 PM.