Я только начинаю проходить урок по scala и попал в блок.Я объединил пару примеров и получаю ошибку, но не знаю почему.
import java.text.DateFormat._
import java.util.{Date, Locale}
object FrenchDate {
def main(args: Array[String]) {
timer(println(frenchDate))
}
def frenchDate():String = {
val now = new Date
val df = getDateInstance(LONG, Locale.FRANCE)
df format now
}
def timer(callback: () => Unit) {
while(true) {callback(); Thread sleep 1000}
}
}
Приносит ошибку
error: type mismatch;
found : Unit
required: () => Unit
println(frenchDate)
, в то время как ниже работает
import java.text.DateFormat._
import java.util.{Date, Locale}
object FrenchDate {
def main(args: Array[String]) {
timer(frenchDate)
}
def frenchDate() {
val now = new Date
val df = getDateInstance(LONG, Locale.FRANCE)
println(df format now)
}
def timer(callback: () => Unit) {
while(true) {callback(); Thread sleep 1000}
}
}
Единственное отличие состоит в том, что дата печатается в frenchDate()
во второй раз, тогда как она возвращается и печатается в обратном вызове на первой.