作者giive (lala)
看板Ruby
标题Re: [分享] 另一个 Parallel Assignment 玩法
时间Wed May 24 21:33:52 2006
※ 引述《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)
1F:推 mosluce:上面...第一部分我不是很懂...第二部分在玩RGSS时碰到过 05/25 15:10
2F:→ mosluce:当时实在搞不太清楚为什麽可以这样~呵呵 05/25 15:11