【发布时间】:2015-06-21 06:10:39
【问题描述】:
我正在从“不耐烦的 Scala”一书中学习 Scala。书中的一节用以下代码 sn-p 说明了“流利”的编程风格:
object Title
class Document {
private var useNextArgAs: Any = null
def set(obj: Title.type): this.type = { useNextArgAs = obj; this }
def to(arg: String) = if (useNextArgAs == Title) title = arg; else ...
}
然后作者进行如下方法调用:
book set Title to "Scala for the Impatient"
这里有一些问题:
- 为什么
useNextArgAs输入Any?在示例中用于useNextArgAs的唯一类型是Title。你能展示一个使用Any代替Title的用例吗? - 方法
set返回this但返回类型是this.type,而不是Document?this不应该是实例吗? - 在方法
to中,title = arg指的是不存在的变量title?它是从哪里来的?
【问题讨论】:
-
本书专注于 Scala,并在没有警告的情况下展示了可变
var和Any类型的示例? -
@cchantep “对于不耐烦的人”是一个线索 :) 来自亚马逊评论
A java programmer after reading this book will only write scala in a java style of programming. That's not what we want. We need developers who can think and program in scala way. -
我不同意写这篇评论的人。我有 3 本书关于 Scala,“不耐烦的 Scala”、“学习 Scala”和“Scala 编程”,恕我直言,“不耐烦……”是其中最好的。它有必要的深度,但不会让你入睡。也许审阅者没有完成练习,这就是他们错过重点的地方。练习与课程一样重要,因为每个问题都会让你思考。我看到太多人对“scala 方式”的吹捧过于松散,而没有解释这对他们意味着什么,如果有的话。免责声明:作者不向我付款。
标签: scala types fluent method-chaining