Re: [分享] 另一個 Parallel Assignment 玩法
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
[恕刪]
: 我今天面對一個 function or method
: 我怎麼知道他回傳的東西是什麼?
: 單純看上面的例子,似乎是不太可能知道
: 回傳 Array 當中各個 element 的 data type
: (Java 當中有 reflect 機制可以幫忙這一點
: 可是不太可能用在 coding 的時候來處理這樣子的問題)
ㄜ,扯到這裡就要講一下我個人的喜好了
Ruby 雖然沒有像 Perl 那麼的誇張
但是 Ruby 本身對於 Data Type 的定義,給人感覺似乎沒有那麼的強烈
或是這樣講,Ruby 總是有辦法可以偷偷幫你轉換這些 Data Type
所以,回傳值 Data Type 是啥
通常....我不太 care @@!
這也是 Ruby 讓我那麼爽快的原因
不要太在乎那些規則,那些型別
We code for fun and happiness
Perl 的型別有多誇張呢?
舉個例子
$a = "1";
print $a+2;
沒錯,他會出現 3 (字串跟數字可以相加XD)
: 就可以繼續 coding 下去,不用擔心型態記錯
Ruby 是 Run Time 去定義 Class , 他是開放式的定義
因此,比較沒有型態記錯的問題
或者說,凡事輕鬆點,不要太在乎會比較好 :p
舉個例子
class A
def call
"A"
end
end
tmp = A.new
puts "At first, class A's method call()"
puts tmp.call
class A
def yell
"Yell B"
end
end
tmp = A.new
puts "After another type, class A's method call()"
puts tmp.call
puts tmp.yell
他執行的結果是
At first, class A's method call()
A
After another type, class A's method call()
A
Yell B
第一次呼叫 tmp.call 的時候
A這個 class 還沒有yell這個method
但是第二次呼叫的時候
A 已經偷偷加進去另外一個 method yell
當然JAVA也是有一些技巧可以做到類似的效果(我猜應該有啦@@!)
但是,還是沒有那麼的直接
嚴謹的語言有嚴謹的語言的優點
開放式的語言亦然有開放式的優點
總之,
寫 Ruby Code 的時候
不要想著 " 我的型態有沒有搞錯 " 會比較好過:p
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.103.127
※ 編輯: giive 來自: 61.230.103.127 (05/24 21:34)
※ 編輯: giive 來自: 61.230.103.127 (05/24 21:50)
推
05/25 15:10, , 1F
05/25 15:10, 1F
→
05/25 15:11, , 2F
05/25 15:11, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 8 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章