我有这样的代码:
val dm = List[String]()
val dk = List[Map[String,Object]]()
.....
dm.add("text")
dk.add(Map("1" -> "ok"))
Run Code Online (Sandbox Code Playgroud)
但它会抛出运行时java.lang.UnsupportedOperationException.
我需要声明空列表或空映射,稍后在代码中需要填充它们.
假设我有
var mp = Map[String,String]()
.....
val n = mp("kk")
Run Code Online (Sandbox Code Playgroud)
如果键"kk"不存在,上面将抛出运行时错误.
我预计在密钥不存在的情况下,n将为null.如果key不存在,我希望n为null.
使用短代码示例在scala中处理这种情况的正确方法是什么?
我为scaladoc 2.0教程或示例进行了bin或google搜索,我找不到任何东西,实际上甚至没有链接到官方scaladoc 2.0文档.谁知道在哪里找到一个?
我有一个Java程序,我通常从命令行开始.从命令行启动后,java程序将一直运行,直到按下Ctrl + C退出它或从另一个脚本中删除命令.Java程序向控制台输出错误消息(如果有).
现在我想开发基于Express的NodeJs Web应用程序.当用户单击链接(运行)时,单击处理程序将调用Ajax请求,这将导致后端NodeJs脚本运行此Java程序(如果尚未运行).另一个链接(Stop)将使Ajax请求停止此Java程序.
如何实现这一目标?使用示例代码回答最有用.
还有一个要求:如果此NodeJs Web应用程序终止,由它启动的Java程序将继续运行,即它不依赖于NodeJs Web应用程序.
假设我有一个Java接口
public interface Bar {
public void baz(String st)
public void jaz()
}
Run Code Online (Sandbox Code Playgroud)
我想在函数体中的scala中匿名实现上面的接口,如:
def foo() = {
val bar : Bar = new Bar() {
// how to do that ?
}
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我每隔5秒定期进行一次ajax调用,以从服务器获取新的更新.
我从服务器获取的ajax数据是JSON数组,如下所示:[{"foo":"valx","bar":"valy"
},{"foo":"valw","bar":"valz"}]
我的ajax代码是:
(function update() {
$.ajax({
type : 'GET',
url : url,
data : {
},
dataType : "json",
global : false,
success : function(content, textStatus, jqXHR) {
myViewModel = content;
ko.applyBindings(myViewModel);
},
complete: function() {
setTimeout(update, 5000);
},
error: function( xhr, textStatus ) {
}
});
})();
Run Code Online (Sandbox Code Playgroud)
我的HTML是:
<tbody data-bind="foreach: myViewModel">
<tr>
<td data-bind="text: foo"></td>
<td data-bind="text: bar"></td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我在第一次ajax调用后得到错误:你不能多次将绑定应用于同一个元素.
我想要的是最轻的eclipse版本,以便在运行时尽可能地消耗内存.有没有人知道如何配置eclipse尽可能轻?
目前我正在使用Eclipse STS,但我想放弃它,因为它在不运行我的项目时自己使用平均1 GB的内存.我使用的是64位linux平台.
我只是做普通的Java/Groovy/Grails和Scala Web应用程序开发以及Javascript调试HTML/CSS.我没有使用任何重量级的应用程序服务器.
我在scala模板中有代码,如:
@for(col <- List.range(0,12)) {
<td>
@if(col % 2 == 0) {
@{ val letter = someMap(col) }
<div class="z@(letter)@(letter)s"></div>
}
</td>
}
Run Code Online (Sandbox Code Playgroud)
但我得到编译错误:找不到值字母.如何声明变量并能够在上面的标记中稍后访问?
我有一种情况,我将单个元素列表传递给方法.在此方法中,列表中的单个元素增加1.因此,在方法调用之后,将修改列表第一个元素(递增1).
代码是这样的:
val ct = List(5)
someMethod(ct)
println (ct(0))
// should print 6
Run Code Online (Sandbox Code Playgroud)
......
//within somethod, I incrment the element like:
def someMethod(ct: List[Int}) {
ct(0) = ct(0) + 1
}
Run Code Online (Sandbox Code Playgroud)
当然上面的代码在Scala中不起作用.我查看了ListBuffer,但我发现scala doc难以理解.Scala doc分为2组:Type Member和Value Members.在类型成员中有类WithFiler,值成员有许多方法.我如何使用WithFiler(可能与此问题没有直接关系,但我想了解如何使用scala doc).
如果我想要具有非常高的性能(someMethod被称为数百万次),ListBuffer似乎是解决这个问题的正确方法(如果我错了,请纠正我).
那么如果ListBuffer是正确的列表类型,如果不是解决方案,如何解决上述问题呢?
假设我有一个scala函数,它应该返回一个类型的元组
(String, Int, Int) mapped to keys (words, row, col):
def getResult(param: Int) {
// a lot of logic goes here to generate tuple values
// now return the tuple
}
Run Code Online (Sandbox Code Playgroud)
在来电代码中:
var words, row, col
if(someValue) {
getResults(someValue) // assigns the tuple values to keys words, row and col
// reference words, row and col variables here
} else
getResults(someOtherValue) // assigns the tuple values to keys words, row and col
// reference words, row and col variables …Run Code Online (Sandbox Code Playgroud) scala ×8
java ×3
ajax ×1
eclipse ×1
grails ×1
javascript ×1
jquery ×1
knockout.js ×1
node.js ×1
scaladoc ×1