小编Bri*_*ian的帖子

使用Scala的ObservableMap

我正在尝试使用scala.collection.mutable.ObservableMap.

从scala-user中抓取下面的代码片段并将其复制到REPL中.

电子邮件提到票据2704已被标记为已修复,但此片段不起作用.

语法是否已更改或订阅被错误地调用?

这是在2.9.0.final

scala> import scala.collection.mutable._

import scala.collection.mutable._

scala> import scala.collection.script._
import scala.collection.script._

scala> class MyMap extends HashMap[Int,Int] with ObservableMap[Int,Int,MyMap]
<console>:13: error: wrong number of type arguments for scala.collection.mutable.ObservableMap, should be 2
       class MyMap extends HashMap[Int,Int] with ObservableMap[Int,Int,MyMap]
                                                 ^

scala> class MyMap extends HashMap[Int,Int] with ObservableMap[Int,Int]
defined class MyMap

scala> val map = new MyMap
map: MyMap = Map()

scala> class MySub extends Subscriber[Message[(Int,Int)],MyMap] {
     | def notify(pub: MyMap, evt: Message[(Int,Int)]) { println(evt) }
     | } …
Run Code Online (Sandbox Code Playgroud)

scala observablecollection publish-subscribe scala-2.9

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

更优雅的scala代码

我开始学习斯卡拉.不知道是否有人有更好的方法以更实用的方式重写代码.我知道必须有一个.

val buf = ((addr>>24)&0xff) + "." + ((addr>>16)&0xff) + "." + ((addr>>8)&0xff) + "." + ((addr)&0xff)
Run Code Online (Sandbox Code Playgroud)

scala

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

具有Publisher和订阅者特征的Scala类

使用import scala.collection.mutable.{Publisher,Subscriber}我正在尝试实现一个订阅事件和发布事件的类.例如,该类可以接收原始数据,对其进行操作,然后将结果发布给其他订户.

扩展订阅者的基本类:

scala> class Sub[Evt, Pub]() extends Subscriber[Evt, Pub]{
  def notify(pub: Pub, evt: Evt){
  }
}
defined class Sub
Run Code Online (Sandbox Code Playgroud)

扩展Publisher的基本类:

scala> class Pub[Evt]() extends Publisher[Evt]{}
defined class Pub
Run Code Online (Sandbox Code Playgroud)

现在,我想把两者结合起来:

scala> class PubSub[Evt, Pub] extends Subscriber[Evt, Pub] with Publisher[Evt]{
  def notify(pub: Pub, evt: Evt){
  }
}
<console>:26: error: class PubSub needs to be abstract, since method notify in
trait Subscriber of type (pub: Pub,event: Evt)Unit is not defined class 
PubSub[Evt,Pub] extends Subscriber[Evt, Pub] with Publisher[Evt]{
Run Code Online (Sandbox Code Playgroud)

定义了notify方法,因此错误可能会产生误导.

我不确定如何定义PubSub类的类型参数,这可能是问题的一部分.

scala publish-subscribe scala-2.8

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

Webpack@4.0.0:"模块解析失败.您可能需要一个合适的加载器来处理此文件类型" - 尽管使用了css-loader和style-loader

下面是我的webpack.config.js和package.json

module.exports = {
  entry: "./entry.js",
  output: {
     filename: "./build/js/bundle.js"
  },
  module: {
    rules: [
      {
        test: /.\js$/,
        use: [
          {
            loader: 'babel-loader',
        options: {
          presets: ["es2015"]
        }
      }
    ]
  },
  {
    test: /.\css?$/,
    include: __dirname + "./src/css",
    exclude: __dirname + "./src/js",
    use: [
        'style-loader',
        {
          loader: 'css-loader',
          options: {
            modules: true
          }
        }
      ]
  }
]
  },
  plugins: [
     // new UglifyJsPlugin()
  ]
}


"dependencies": {
    "ajv-keywords": "^3.1.0",
    "ajv": "^6.0.0",
    "axios": "^0.17.1",
    "babel-minify-webpack-plugin": "^0.3.0",
    "extract-text-webpack-plugin": "^3.0.2",
    "install": "^0.10.4",
    "npm": …
Run Code Online (Sandbox Code Playgroud)

webpack webpack-style-loader css-loader

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

动态添加Scala中元组列表中的项目

如何使用Scala在元组的ListBuffer中使用循环添加项?我已将列表声明为:

val listV = new ListBuffer[(String,Int)]();
Run Code Online (Sandbox Code Playgroud)

在添加这样的项目:

listV += ("a",1)
Run Code Online (Sandbox Code Playgroud)

给出错误:类型不匹配如下

[error]  found   : String("a")

[error]  required: (String, Int)

[error]         listV += ("a",1)

[error]                   ^

[error] one error found
Run Code Online (Sandbox Code Playgroud)

有什么建议可以解决吗?谢谢你的期待

scala tuples list

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

Scala - 在没有[]的情况下将数据框保存到文本文件

当我将Dataframe保存到文本文件时,它会被保存,[] 例如我有一个数据框:

9206E599-2E07-439E-9C01-A6714E779D11
D607E87F-FB90-4F2B-8A99-335AE4F5C97F
Run Code Online (Sandbox Code Playgroud)

myDataFrame.rdd.saveAsTextFile("My Path")我得到的时候

[9206E599-2E07-439E-9C01-A6714E779D11]
[D607E87F-FB90-4F2B-8A99-335AE4F5C97F]
Run Code Online (Sandbox Code Playgroud)

有没有办法删除这些括号.

scala intellij-idea apache-spark

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

在Scala中将元素插入有序数组的最佳方法

我有一个数组,或者Seq看起来像

val myArray = collection.mutable.ArrayBuffer[Int](1,4,8,10,12,13)

val newElem = 7
Run Code Online (Sandbox Code Playgroud)

我想将新元素插入到Array中的正确位置,以便仍然对数组进行排序。

我不想在这里生成一个新数组。

我的解决方案是先找到插入位置,然后再插入。

def findInsertPosition(myArray: collection.multable.ArrayBuffer[Int], newElem: Int): Int
Run Code Online (Sandbox Code Playgroud)

然后打电话

myArray.insert(pos, newElem)
Run Code Online (Sandbox Code Playgroud)

问题是如何以findInsertPositionScala样式编写函数,而不使用while,for循环?

还是您有更好的解决方案?

arrays sorting scala

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

压缩两个长度递减的列表

我得到了下面应该用 Scala 解决的问题陈述:两个元素列表,第一个的大小小于第二个。例如列表 1 有 2 个元素,列表 2 有 10 个元素。需要将列表 1 的每个元素与第二个列表的两个元素进行映射。用于第一个元素的元素不应用于第二个元素,即它从第二个列表中获取两个唯一元素并返回第二个列表中的剩余元素以及映射元素列表。

scala> val list1 = List(1,2)
list1: List[Int] = List(1, 2)

scala> val list2 = List(3,4,5,6,7,8,9)
list2: List[Int] = List(3, 4, 5, 6, 7, 8, 9)
Run Code Online (Sandbox Code Playgroud)

预期产出

(List((1,3), (1,4), (2,5), (2,6)), List(7,8,9))
Run Code Online (Sandbox Code Playgroud)

scala tail-recursion

0
推荐指数
2
解决办法
73
查看次数

Scala 案例类过滤列表

假设您有一个如下所示的案例类

case class Fruit(name: String, color: String, price: Double){
}
Run Code Online (Sandbox Code Playgroud)

你还有案例类别列表

val Fruits = List
(Fruit("Apple", "red", 3.00), Fruit ("Banana", "yellow", 4.99))

How do you filter based on name?

Run Code Online (Sandbox Code Playgroud)

scala case-class

-3
推荐指数
2
解决办法
334
查看次数