Zakładam, że chcesz odczytać hasło z wiersza poleceń konsoli, więc musisz utworzyć instancję Console
z poziomu System
(Console
nie jest to singleton).
scala> val standardIn = System.console()
standardIn: java.io.Console = [email protected]
scala> val password = standardIn.readPassword()
Zauważ, że nie jest konieczne, ponieważ import
typu wnioskowania Scala oraz fakt, że System
jest już w zasięgu domyślnie.
Aby uzyskać więcej informacji, skonsultuj się z javadoc dla java.io.Console
.
EDIT: W skompilowanego programu Scala:
object ReadPassword {
def main(args: Array[String]) {
val standardIn = System.console()
println("standardIn object: " + standardIn)
print("Password> ")
val pw = standardIn.readPassword()
print("Password: ")
pw.foreach(print) // For demonstration purposes
println()
}
}
Kompilacja/jazdy:
$ scalac ReadPassword.scala
$ scala ReadPassword
standardIn object: [email protected]
Password>
Password: hello world
dzięki za odpowiedzi. Mogę pobrać instancję konsoli w narzędziu REPL, tak jak w twoim kodzie. Jeśli jednak spróbuję zrobić to samo w programie Scala (lub arkuszu Scala), standardIn pobiera wartość pustą. Nie mam pojęcia dlaczego. – Sergio
'standardIn' jest obiektem konsoli, metoda' getPassword' zwróci 'char []' wprowadzonego hasła. Dodałem przykładowy przykładowy program, który napisałem i wydawało się, że działa dobrze. – adelbertc