我无法理解为什么在此代码中出现语法错误:
"T.scala"文件:
trait T
Run Code Online (Sandbox Code Playgroud)
"A.scala"文件:
class A
object A {
def apply() = new A()
}
Run Code Online (Sandbox Code Playgroud)
"other.scala"文件:
val a = new A() with T // ok
val b = A() with T // syntax error ';' or newline expected
Run Code Online (Sandbox Code Playgroud)
我可以在不使用new关键字的情况下继承创建新的类实例吗?
我没有发现任何相关信息.
我想创建一个List[Int]仅包含0和1的位置.在数组中定义的零和1的位置
val bitMask = List(2,5,6,11,...,621,655)
Run Code Online (Sandbox Code Playgroud)
bitMask - 是结果列表中的位置列表,结果列表的项目为零
结果我想得到
result = List(0,0,1,0,0,1,1,0,...,0,1)
Run Code Online (Sandbox Code Playgroud)
将结果的长度计算为 bitMask.last + 1
我用这段代码做到了:
result = List.fill(bitMask.last+1)(0).zipWithIndex.map(i => if (bitMask.contains(i._2)) 1 else 0)
Run Code Online (Sandbox Code Playgroud)
可能有一个更简单,更scala-way的解决方案?
我正在尝试通过代理使用 pip 在服务器上搜索/安装一些软件包。服务器无法直接访问https://pypi.python.org。
我跑:
pip search --proxy 1.1.1.1:1111 lxml
Run Code Online (Sandbox Code Playgroud)
(而不是1.1.1.1:1111使用真实的ip和端口)
并获取 python 跟踪:
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 139, in main
status = self.run(options, args)
......
......
File "/usr/lib/python2.7/httplib.py", line 772, in connect
self.timeout, self.source_address)
File "/usr/lib/python2.7/socket.py", line 571, in create_connection
raise err
error: [Errno 111] Connection refused
Run Code Online (Sandbox Code Playgroud)
当我尝试在本地计算机上运行此命令(可以直接访问https://pypi.python.org)时,我得到了正确的结果:
pip search --proxy 1.1.1.1:1111 lxml
lxml - Powerful and Pythonic XML processing library combining
libxml2/libxslt with the ElementTree API.
...
Run Code Online (Sandbox Code Playgroud)
但是当我在本地计算机上使用错误的代理设置运行时:
search --proxy …Run Code Online (Sandbox Code Playgroud) 假设,我已经流case class有object:
case class A(a: String, b: Int)
object A {
def apply(c: String) = new A(c, 100500)
}
Run Code Online (Sandbox Code Playgroud)
我要把 json 转换{"c": "foo"}成 class A。
为此,我创建了协议:
object AJsonProtocol extends DefaultJsonProtocol {
implicit val aFormat = jsonFormat1(A.apply)
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序:
object Main {
import AJsonProtocol._
def main(args: Array[String]): Unit = {
val r = """{"c": "foo"}""".parseJson.convertTo[A]
println(r)
}
}
Run Code Online (Sandbox Code Playgroud)
当我开始可能应用程序时,我得到异常:
Exception in thread "main" java.lang.ExceptionInInitializerError
at Main$.main(Main.scala:21)
at Main.main(Main.scala)
Caused by: scala.MatchError: [Ljava.lang.String;@6328d34a (of class …Run Code Online (Sandbox Code Playgroud)