我想反转这个集合中的项目,所以我决定要求它成为它的一部分Traversable,以及它的任何子类型,并让它返回一个Traversable,但我想我可能还需要使用它的变化,但是,目前我得到编译器错误,使用Scala 2.10.0-M5.
trait Polynomials {
def coefficients[+A <: Traversable[T]](x:A):Traversable[A] = x.foldLeft(Traversable[A]())((b,a) => a :: b)
}
Run Code Online (Sandbox Code Playgroud)
这些是我得到的错误,我不确定我做错了什么.
Description Resource Path Location Type
']' expected but identifier found. Polynomials.scala line 4 Scala Problem
'=' expected but ']' found. Polynomials.scala line 4 Scala Problem
illegal start of simple expression Polynomials.scala line 5 Scala Problem
Run Code Online (Sandbox Code Playgroud) 我想将char转换为int值.我对工作方式感到有些困惑toInt.
println(("123").toList) //List(1, 2, 3)
("123").toList.head // res0: Char = 1
("123").toList.head.toInt // res1: Int = 49 WTF??????
Run Code Online (Sandbox Code Playgroud)
49无缘无故地随机弹出.你如何以正确的方式将char转换为int?
下面的递归方法将一个范围之间的整数值相加
def sumInts(a: Int, b: Int): Int = {
if(a > b) 0
else {
println(a +"," + b)
a + sumInts(a + 1 , b)
}
}
Run Code Online (Sandbox Code Playgroud)
所以 sumInts(2 , 5) returns 14
我对sumInts的递归调用如何求和整数范围感到困惑.可以用文字解释这种方法的工作原理吗?
sumInts如何返回递增的值?也许我错过了这里递归的基本原理
我想在简单计算上使用ceil Math.ceil.但是,Math.ceil(3/2)给出1.0,同时Math.ceil(1.5)给出2.0,为什么会这样?我应该自己做这个以使天花板操作3/2为2.0吗?
嗨,有人可以帮我处理我的案例问题这是一个截图,如果你需要UNPACK代码,请问我很乐意发布它.
你可以从截图中看到它返回正常,所以我不明白为什么.

基本上我想这样做:
val germanTranslation = translations.find(t => t.lang.equals("de")).get.value
Run Code Online (Sandbox Code Playgroud)
但可能是没有这样的翻译 - > find将返回None,并且get调用将抛出异常.
所以似乎使用getOrElse是合适的.但不知道它会如何运作.就像是:
val englishTranslation = translations.find(t => t.lang.equals("en")).getOrElse("")
Run Code Online (Sandbox Code Playgroud)
这个有2个问题 - getOrElse("")试图返回翻译或字符串,这是不正确的,而且,我需要的是翻译的值(字符串) - 而不是翻译对象.
有帮助吗?谢谢
我需要从0000到9999生成一个4位数字,我似乎无法这样做.我有这个代码,但有时会生成762,我不能让它这样做.我确实需要使用这些方法来生成它.
private java.util.Random rndGenerator = new java.util.Random();
private int randomValue;
public final static int NUMBER_OF_VALUES = 9999;
public GuessRandomValue() {
randomValue = rndGenerator.nextInt(NUMBER_OF_VALUES);
}
public void setAnswer() {
randomValue = rndGenerator.nextInt(NUMBER_OF_VALUES);
}
Run Code Online (Sandbox Code Playgroud) 这个函数应该返回列表中所有数字的总和,但是当我运行它时,我总是回来ans=0.
def sum(st: List[Int]): Int = {
var ans=0
def combine(st: List[Int], ans:Int): Int = {
if (st.isEmpty) ans else combine(st.tail, ans)
}
ans
}
Run Code Online (Sandbox Code Playgroud)
这有什么问题?
我刚刚开始使用Erlang,但我无法使用它
-module(bla).
-export([start/0, sendC/2]).
start() ->
number = 236,
Pid1 = spawn(dz, sendC, [1, number]),
register(a, Pid1).
sendC(num, time) ->
io:format(" ~w ~w \n", [num, time]).
Run Code Online (Sandbox Code Playgroud)
我想将一个数字传递给另一个函数.我收到一个错误"异常错误:没有匹配的右侧值236".
在Scala中,我正在尝试生成一组通用的检查来运行某些数据.
我的基本特征看起来像这样:
trait Check[T]
{
def complete() : Boolean = ...
def passed() : Boolean = ...
def update[T]( data : T ) : Unit
}
Run Code Online (Sandbox Code Playgroud)
然后我有两个子特征,看起来有点像这样:
trait CheckFoo extends Check[Foo]{ val baz = 1 }
trait CheckBar extends Check[Bar]{ val baz = 2 }
Run Code Online (Sandbox Code Playgroud)
这是为了避免我在每个Foo和Bar检查中定义baz.
然后我有一些实际的Foo检查,例如
class CheckFooOne extends CheckFoo
{
def update( data : Foo ) : Unit = ...
}
Run Code Online (Sandbox Code Playgroud)
但是这不会编译:它告诉我CheckFooOne必须是抽象的,因为没有定义方法更新.
我做错了什么?我确信我错过了一些微妙之处.我很抱歉,如果还有这样的问题,但是我想不出要搜索的内容,而且我已经毫无欢乐地查看了类似问题的列表.