-Djava.net.preferIPv4Stack=true Option.Wenn euch also das nächste mal ein Socket beim Connect aus unerfindlichen Gründen abraucht, versucht es mal damit.
-Djava.net.preferIPv4Stack=true Option.
object Main {
class FooBar[A, B]
def main(args: Array[String]): Unit = {
//zwei unterschiedliche Schreibweisen die das gleiche
//meinen
var x: FooBar[Int, BigInt] = null
var y: Int FooBar BigInt = null
}
}
=:=, <:< und <%<, diese Konstrukte kann man sich unter anderem auch selbst zusammenbasteln, im folgenden Beispiel bauen wir uns einen <@@@< "Operator"
abstract class <@@@<[A, B] extends (A => B)
class Test[T <: (Int => Int)]
object Main {
def main(args: Array[String]) = {
val t = new Test[Int <@@@< Int]
}
}
import scala.actors.Actor
import scala.actors.Actor._
class Prime(value: Int) extends Actor {
var next: Option[Prime] = None
println(value)
start
def act(): Unit = loop {
react {
case x: Int if ((x % value) != 0) =>
next match {
case Some(p: Prime) => p ! x
case None => next = Some(new Prime(x))
}
}
}
}
object Main {
def main(args: Array[String]): Unit = {
val primer = new Prime(2)
3 to args(0).toInt map (primer ! _)
}
}
object Main {
def merge[T <% Ordered[T]](l: List[T], r: List[T]): List[T] =
(l,r) match {
case (x::xs, y::ys) => if (x < y)
x::(merge(xs, r))
else
y::(merge(l, ys))
case (xs, Nil) => xs
case (Nil, ys) => ys
}
def mergesort[T <% Ordered[T]](list: List[T]): List[T] =
if (list.length > 1) {
val (l, r) = list splitAt (list length)/2
merge(mergesort(l), mergesort(r))
} else list
def main(args: Array[String]): Unit = {
println(mergesort(List(4,5,9,1,2,4,5,9,8,7)))
}
}
mode git in den entsprechenden Modus. Die Farbe der Commit ID wechselt von Rot (uncommited changes) zu Gelb (nicht die aktuellste Revision) zu Grün (aktuellste Revision und nichts zu commiten). Außerdem wird der aktuelle Branch angezeigt und im Falle eines "detached HEAD" Zustands visuell gewarnt. Viel Spass damit!