相关疑难解决方法(0)

Scala和括号之间Scala的形式差异是什么,何时应该使用它们?

将参数传递给括号()和括号中的函数有什么形式上的区别{}

我从Scala编程书中得到的感觉是Scala非常灵活,我应该使用我最喜欢的那个,但我发现有些情况是编译而有些情况则没有.

例如(仅作为一个例子;我很感激任何讨论一般情况的反应,而不仅仅是这个特定的例子):

val tupleList = List[(String, String)]()
val filtered = tupleList.takeWhile( case (s1, s2) => s1 == s2 )
Run Code Online (Sandbox Code Playgroud)

=>错误:非法启动简单表达式

val filtered = tupleList.takeWhile{ case (s1, s2) => s1 == s2 }
Run Code Online (Sandbox Code Playgroud)

=>很好.

syntax scala parentheses braces

317
推荐指数
7
解决办法
4万
查看次数

键入安全方法链接,不允许重复操作

我想在这些问题中实现方法链接:

实现支持方法链的Scala特征的最佳实践 ;

Scala DSL:使用无参数方法链接的方法

但是,我希望一旦使用了"属性",它就不能再使用了.例如,假设我有一个类"Myclass",我想允许使用定义"foo"和定义"bar"最多一次,我不关心最终的返回类型.从而:

val c = new Myclass
c foo //ok !
c foo bar // ok!
c foo foo // refuse to compile
c foo bar foo //refuse to compile
Run Code Online (Sandbox Code Playgroud)

我在这个问题上挣扎了一段时间,我的视力开始变得模糊!我尝试使用隐式类,但是,他们是否需要解析没有使用关联属性的对象,我无法找到他们是否需要通过从对象可用属性中删除它来"使用"该属性,以及再说一次,我怎么也找不到.

我目前正在使用反射API进行搜索,但对我来说它仍然有点模糊.

帮助将不胜感激!=)

scala method-chaining

6
推荐指数
1
解决办法
389
查看次数

标签 统计

scala ×2

braces ×1

method-chaining ×1

parentheses ×1

syntax ×1