我正在尝试使用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) 我开始学习斯卡拉.不知道是否有人有更好的方法以更实用的方式重写代码.我知道必须有一个.
val buf = ((addr>>24)&0xff) + "." + ((addr>>16)&0xff) + "." + ((addr>>8)&0xff) + "." + ((addr)&0xff)
Run Code Online (Sandbox Code Playgroud) 使用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类的类型参数,这可能是问题的一部分.
下面是我的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) 如何使用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)
有什么建议可以解决吗?谢谢你的期待
当我将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)
有没有办法删除这些括号.
我有一个数组,或者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循环?
还是您有更好的解决方案?
我得到了下面应该用 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) 假设您有一个如下所示的案例类
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 ×8
apache-spark ×1
arrays ×1
case-class ×1
css-loader ×1
list ×1
scala-2.8 ×1
scala-2.9 ×1
sorting ×1
tuples ×1
webpack ×1