如何导入以下包:
org.hibernate.type.StringType
Run Code Online (Sandbox Code Playgroud)
在斯卡拉?如果我做:
import org.hibernate.type.StringType
Run Code Online (Sandbox Code Playgroud)
"type"被识别为关键字.这是我第二次在两天内遇到这种情况.我的最后一个解决方案是更改my(Java)包名.这不再是有效的解决方案!
以下是Scala IDE的消息:
<error> is not a member of org{org.type}.hibernate{org.hibernate.type}
Run Code Online (Sandbox Code Playgroud) 我最近在Hadoop中设置了LZO压缩.在HDFS中压缩文件的最简单方法是什么?我想压缩文件,然后删除原始文件.我应该使用IdentityMapper和使用LZO压缩的IdentityReducer创建MR作业吗?
在我的conf/application.conf设置我的应用程序的日志记录级别DEBUG.
logger.application=DEBUG
Run Code Online (Sandbox Code Playgroud)
这在sbt run我的申请时工作正常.但是,当我在生产模式下运行时sbt start,日志级别会被覆盖INFO.
有没有办法DEBUG在生产中运行时强制播放用作我的日志级别?
如何将Scala数组转换为mutable.Set?转换为immutable.Set很容易
Array(1, 2, 3).toSet
Run Code Online (Sandbox Code Playgroud)
但我找不到一种明显的方法来转换为mutable.Set.
我最近发现,爪哇(和Scala)包括非短路逻辑运算符&,|和^.我之前认为这些只能作为按位运算符.虽然可能存在争论^,但我不能想到使用非短路逻辑运算符的非常好的理由 - 尽管可以肯定,我可以设想一个例子.
这些运营商有用吗?它们似乎更容易导致难以捕获的错误.
scala> def foo = {
| println("foo")
| true
| }
foo: Boolean
scala> def bar = {
| println("bar")
| true
| }
bar: Boolean
scala> foo || bar
foo
res5: Boolean = true
scala> foo | bar
foo
bar
res6: Boolean = true
Run Code Online (Sandbox Code Playgroud) 我有一个带有Bar列表的对象Foo.有没有办法设置我的类,以便getBars()将返回一个已用Collections.sort排序的List?换句话说,我想在首次填充列表时运行Collections.sort.目前,我在检索集合时调用sort,这可能是多余的,很容易被遗忘.
我希望这会给我一个类型错误,因为(String, String)在这种else情况下不是Pair.
case class Pair(x: String, y: String)
val value = Console.readLine.toBoolean
val Pair(x, y) =
if (value) Pair("foo", "bar")
else false
Run Code Online (Sandbox Code Playgroud)
相反,如果我输入false,我在运行时会收到以下错误.
scala.MatchError: (foo,bar) (of class scala.Tuple2)
Run Code Online (Sandbox Code Playgroud)
我认为解构只是用于将结果分配给类型变量Any然后匹配的糖,但是Scala让它飞起来似乎很不幸.
我理解如何在Play 2中添加简单的表单验证nonEmptyText,但是如何实现更复杂的验证,例如"必须至少定义一个字段"?现在我在我的模型对象中抛出异常,如果它被所有Nones 初始化,但这会产生一个讨厌的错误消息.我希望在表单页面上收到一条友好的错误消息.
例如,如果您正在计算精度
p = correct / total
Run Code Online (Sandbox Code Playgroud)
你能确保你不要除以零:
double p;
if (total == 0.0) {
p = 0.0;
}
else {
p == correct / total;
}
Run Code Online (Sandbox Code Playgroud)
或者检查你是否得到了NaN?
double p = correct / total;
if (Double.isNaN(p)) {
p = 0.0;
}
Run Code Online (Sandbox Code Playgroud)
方法有益,还是个人偏好?
我从一组C目标集开始.每个集合包含单词(或没有空格的字符串).当我迭代句子时,我可以将句子视为一组观察到的单词D.我的问题是,对于每一个句子,我想找到所有的套S中C,使得D包含S.换句话说,我想找到所有C单词都在句子中的所有单词集.
例如,请考虑以下内容C:
{fell, ate}
{cat, snail, tiger}
{tree, bush, jalepeno}
{pen, paperclip, stapler}
Run Code Online (Sandbox Code Playgroud)
现在,如果我看到句子"树倒在灌木丛上,因为它吃了一个jalepeno.",我想要归还两套.
{fell, ate}
{tree, bush, jalepeno}
Run Code Online (Sandbox Code Playgroud)
这似乎有点类似于特里.但是,它只是相似,因为我不匹配句子中的所有单词,而是任何子集.一个想法是将集合表示为C类似于trie的数据结构Map[String, PseudoTrie],每个级别都有一个,并且当我按照排序顺序迭代句子中的单词时,遵循多条路径.
我理解这类似于搜索查询.但是,如果我需要遍历所有句子,只要每个句子的计算速度很快就可以了.迭代每个集合C并执行包含太慢.
UPDATE
我认为人们可能会对我的一些结果感兴趣.这些定时都在100000个句子和每个目标设置C在D具有约4或5个字.
原始申请.迭代所有目标集并查看它们是否包含在句子中,其中句子由一组单词表示.227秒
按词汇过滤.除了句子之外的原始过程相同,由该句子中也在某个目标集合中的单词集合表示.优点是我们只需要在进行比较时考虑句子中的单词的子集.110秒
字符串被转换为从0开始的整数键.这还包括必要时在试验#2中的过滤.86秒
添加倒排索引.4秒
我也尝试使用倒排索引的BitSet.花了20秒,所以我没有坚持下去.我不确定为什么放缓 - 我可能做错了什么.
另外,我认为我最初的想法很棒(很多层次的反向索引),但它相当复杂,而且我已经有了相当不错的加速!