我正在使用通用抽象类<?xml version='1.0' encoding='utf-8'?>
<widget id="com.phonegap.helloworld" version="1.0.0"
xmlns="http://www.w3.org/ns/widgets"
xmlns:gap="http://phonegap.com/ns/1.0">
<name>hi bi</name>
<description>
sample stuff
</description>
<author email="support@phonegap.com" href="http://phonegap.com">
PhoneGap Team
</author>
<content src="index.html" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<preference name="phonegap-version" value="3.3.0" />
<preference name="permissions" value="none" />
<preference name="orientation" value="default" />
<preference name="target-device" value="universal" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="true" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="android-installLocation" value="auto" />
<icon src="icon.png" />
</widget>
实现我自己的List
集合。我想添加一个List[+T]
函数,它根据给定的函数更改列表:
map
我在abstract class List[+T] {
def map[U>:T](f: T => U): List[U] = this match {
case null => this
case x :: xs => f(x) :: xs.map(f)
}
}
中收到以下错误:
构造函数无法实例化为期望的type.found Scala.collection.immutable。:: required List [T]
答案 0 :(得分:1)
首先,您可以阅读scala集合的架构 link
总结一下,如果要完全集成新的集合类 进入框架你需要注意以下几点:
- 确定集合是否应该是可变的或不可变的。
- 为集合选择正确的基本特征。
- 从正确的实现特征继承以实现大多数集合操作。
- 如果您希望地图和类似操作返回集合类型的实例,请在类的配套对象中提供隐式CanBuildFrom。
在TraversableLike中实现地图:
def map[B, That](f: Elem => B)
(implicit bf: CanBuildFrom[Repr, B, That]): That = {
val b = bf(this)
this.foreach(x => b += f(x))
b.result
}
答案 1 :(得分:1)
使用Insert into table_A(user,id,grade)
SELECT table_B.id,table_B.user,'' FROM table_B
WHERE table_B.id NOT IN (SELECT table_A.id FROM table_A);
,您尝试将自己的::
与Scala标准库List
相匹配。如果要使用模式匹配,则需要定义自己的提取器。
您可以在The Neophyte's Guide to Scala Part 1: Extractors,中缀操作模式下阅读有关中缀提取器的更多信息。
另一个很好的解释可以在The Scala List extractor demystified找到:
事实证明,
List
(::
包中)的案例类扩展了scala.collection.immutable
。案例类为您提供的许多巧妙的东西之一是一个合成的伴随对象,它具有可以解构该类型实例的unapply方法,