作者Schelfaniel (Schelfaniel)
看板PLT
标题Re: [闲聊] Scala 超短介绍(续1)
时间Mon Aug 17 14:46:17 2009
※ 引述《godfat (godfat 真常)》之铭言:
: scala 定义 function/method 的写法一堆,这边讲得似乎不太清楚。
: 用举例的应该比讲解快...
我觉得 = 就先表明有传回值的意思,( 不然说 非Unit 感觉比较拗口 )
虽然 Unit 学术上也算是有传回值
( 以函数式语言来看,都要有传回值,所以才弄出一个 Unit )
但是,其实 Unit 直接把它当成无传回值,对於一般人比较能接受,
不然传回一个不能用的值和没传回来意义相同。
所以情形就简化成 :
1. 指定型别 = 有传回值也有指定是要传回什麽型别
2. = 有传回值,但是让编译器去判断是什麽型别
3. 都没有 无传回值,或说传回 Unit
我是觉得第一个先看有没有 = ,没有等於的就要注意了,
不然会有明明可能希望要传回值,结果变成 Unit。
( 但是这在使用到传回值时,编译器会帮你看的 )
至於所言可省略括号的情形,应该是如果是 property 的话,
後面再接 () 让它可以当成 property + apply 来使用,
但是函数的话就不可以...不过这边我觉得也有可能造成陷阱就是了。
: 其实这个 object 和 class 本身应该是没关系的,
: 只是可以用同一个名字,因此看起来会像是 java static 似的?
因为我就是拿 Java 的例子来改写的呀....
: : 注意的是这边 Scala 预设下 public,
: : 而 object 中的 count 如果设 private 会让 class A 也读不到,
: 因为其实是无关的东西,正好同名,才会出现这样的状况(吧?)
它 private 可以定 Scope 啦,定在 A 就可以让 class A 也读得到,
这样作用会比较像之前的 Java 范例 :QQ
: : 而这边 Scala 就乾脆拆成两个定义,静态的放 object,动态的放 class,
: 这样讲似乎有点怪,因为 object 应该比较像是 singleton,
这边动态是相对於静态啦,而静态又是从 static 这字来的,
不然改成 类别的放 object,实例的放 class :QQ
: Java 很单纯,但 Scala 性质很多,语法也很多变。
: 也许可以这样说:
: 对於很熟悉 Java 的人,转到 Scala 会比
: 对於很熟悉 C 的人,转到 C++ 来得容易些。
: 对於不够熟的人的话... Scala 应该会晕头转向 XD
一开始不要碰太多 Scala 语法,先从简单的下手较好 :QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.29.29.137