小编she*_*heh的帖子

Scala:"就地"特性继承没有"新"关键字

我无法理解为什么在此代码中出现语法错误:

"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关键字的情况下继承创建新的类实例吗?

我没有发现任何相关信息.

scala

4
推荐指数
1
解决办法
143
查看次数

如何通过1的位置列表解码0和1的列表?

我想创建一个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的解决方案?

scala

3
推荐指数
1
解决办法
267
查看次数

pip 忽略代理设置

我正在尝试通过代理使用 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)

python proxy pip

1
推荐指数
1
解决办法
3万
查看次数

使用伴随对象映射案例类

假设,我已经流case classobject

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)

scala spray-json

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

标签 统计

scala ×3

pip ×1

proxy ×1

python ×1

spray-json ×1