Scala 2.6.0-final
Версия реализации Scala for JVM языка программирования ScalaВерсия Scala 2.6.0-final выпущена 11 сентября 2007.
Основные изменения относительно версии Scala 2.5.1-final:
-
добавлены новые методы
take/takeWhile, drop/dropWhile
иreverse
в классscala.Array
- добавлена поддержка многомерных массивов вплоть до девятой размерности
-
добавлено сообщение буферизации в
remote.TcpService
-
интегрирован пакет
scala.util.parsing.combinator
в стандартную библиотеку Scala - реорганизованы (и местами переименованы) опции компилятора
-
удалены устаревшие классы
Actor, NameServer, Pid, Process
из пакетаscala.concurrent
- исправлены многие ошибки, в том числе и критические
Изменения в синтаксисе языка
Появилась возможность объявления типов при помощи ключевого слова forSome
:
class Ref[T]
abstract class Outer { type T }
Ref[T] forSome { type T <: java.lang.Number }
Ref[x.T] forSome { val x: Outer }
Добавлена возможность объявления “ленивых” переменных при помощи модификатора lazy
:
import compat.Platform._
val t0 = currentTime
lazy val t1 = currentTime
val t2 = currentTime
println("t0 <= t2: " + (t0 <= t2)) //истина
println("t1 <= t2: " + (t1 <= t2)) //ложь
Появилась возможность объявления структурированных типов:
class File(name: String) {
def getName(): String = name
def open() { /*..*/ }
def close() { println("close file") }
}
def test(f: { def getName(): String }) { println(f.getName) }
test(new File("test.txt"))
test(new java.io.File("test.txt"))
Считаются устаревшими:
- старый синтаксис для выражений for
-
requires
, принято использовать{ self: T => ... }
-
&f
для не примененных методов, используетсяf
при необходимости
Комментарии
]]>blog comments powered by Disqus
]]>