Scala 2.8的一个新功能是上下文边界.什么是上下文绑定以及它在哪里有用?
当然我先搜索(例如找到这个),但我找不到任何非常清晰和详细的信息.
import scala.collection.mutable.{_, Map => _, Set => _}
Run Code Online (Sandbox Code Playgroud)
应该从包中导入所有类scala.collection.mutable,除了Map和Set.但它给了我这个错误:
error: '}' expected but ',' found.
import scala.collection.mutable.{_, Map => _, Set => _}
Run Code Online (Sandbox Code Playgroud)
还有办法吗?
我最近听到一些建议"从Predef中取消隐式转换" - 我认为这意味着它也可能是unimport不需要的类:
import java.awt._
unimport java.awt.List
Run Code Online (Sandbox Code Playgroud)
但这不是"unmport"的语法(即没有这样的unimport关键字).什么是正确的语法?
在特定项目中我的Scala文件的开头,我经常有这样的行:
package com.mycompany
package subproject
import common._
import uiutils._
import databinding._
import modeling._
Run Code Online (Sandbox Code Playgroud)
有没有办法创建一个ProjectImports"preimports"所有这些导入的对象(或包对象),以便我可以简单地写
import ProjectImports._
Run Code Online (Sandbox Code Playgroud)
而不是整个列表,在我的每个其他项目文件中?
难道这涉及到的方式scala包进口的Predef有scala.`package`?
请考虑以下Scala代码:
object MainObject {
def main(args: Array[String]) {
import Integer.{
parseInt => atoi
}
println(atoi("5")+2);
println((args map atoi).foldLeft(0)(_ + _));
}
Run Code Online (Sandbox Code Playgroud)
第一个println正常工作并输出7,但第二个,尝试映射字符串数组对函数atoi不起作用,错误"值atoi不是对象java.lang.Integer的成员"
有什么不同?