我有这个代码:
def foo(c: Char) = c match {
case 'a': 'B'
}
Run Code Online (Sandbox Code Playgroud)
我的光标在'='之后的空格上.我想删除所有内容,包括}.怎么样?
如果光标位于第一行的任何位置,我可以这样做吗?街区的任何地方?(并将光标放在'='之后)
abstract class Base {}
class A extends Base
class B extends Base
Run Code Online (Sandbox Code Playgroud)
如何找到创建Base的代码中的所有位置?(也就是说,有新的A()
或新的B()
)
更新
为了说清楚,以上只是一个例子.我对搜索任何类的对象创建感兴趣,包括我无法控制的第三方类.
给定字符串"<table><tr><td>Hello World!</td></tr></table>"
,获取DOM元素代表它的(最简单)方法是什么?
这工作:
scala> class foo[T] {
| var t: T = _
| }
defined class foo
Run Code Online (Sandbox Code Playgroud)
但这不是:
scala> def foo[T] = {
| var t: T = _
| }
<console>:5: error: local variables must be initialized
var t: T = _
Run Code Online (Sandbox Code Playgroud)
为什么?
(可以使用:
var t: T = null.asInstanceOf[T]
Run Code Online (Sandbox Code Playgroud)
)
在这些定义foo的每种形式中发生了什么?:
scala> def foo = {1}
foo: Int
scala> foo
res2: Int = 1
Run Code Online (Sandbox Code Playgroud)
但:
scala> def foo {1}
foo: Unit
scala> foo
scala>
Run Code Online (Sandbox Code Playgroud) 如果我做
def eval_file(file)
instance_eval read(file)
end
Run Code Online (Sandbox Code Playgroud)
然后,一旦在文件中的一个方法/块中发生了某些事情,我看到的就是(eval):20 in 'eval_file
'.当我使用带有许多文件的eval_file时,很难判断异常来自哪一个(eval之后发生异常,使用方法时)
有什么方法可以让我看到实际的文件和行号吗?
如何在Scala中声明泛型变量而不初始化它(或初始化为任何值)?
def foo[T] {
var t: T = ???? // tried _, null
t
}
Run Code Online (Sandbox Code Playgroud) scala> import java.util.Properties
import java.util.Properties
scala> trait Foo extends Properties
defined trait Foo
scala> classOf[Foo]
res0: java.lang.Class[Foo] = interface Foo
scala> class FooP extends Foo
defined class FooP
scala> classOf[FooP]
res1: java.lang.Class[FooP] = class FooP
scala> classOf[Properties with Foo]
<console>:7: error: class type required but java.util.Properties with Foo found
classOf[Properties with Foo]
^
scala> new Properties with Foo
res2: java.util.Properties with Foo = {}
scala> res2.getClass
res3: java.lang.Class[_] = class $anon$1
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在不创建实例或新类的情况下获取'Properties with Foo'类?
例如,如果我运行相同的RDD数字,其中一个流过滤偶数并平均它们,其他过滤器为奇数并对它们求和.如果我在同一个RDD上将其写为两个管道,这将创建两个执行,这将扫描RDD两次,这在IO方面可能很昂贵.
如何将此IO简化为只读取一次数据而不将逻辑重写为一个管道?当然,只要开发人员继续独立地处理每个管道(在实际情况下,这些管道从单独的模块加载),一个采用两个管道并将它们合并为一个的框架是可以的.
关键是不要使用cache()来实现这一点
对于使用第三方库,我需要一个w3c DOM文档.但是,在Scala中创建xml节点更容易.所以我正在寻找一种将scala xml元素转换为w3c dom的方法.显然,我可以序列化为一个字符串并解析它,但我正在寻找更高效的东西.