Tôi giả sử bạn muốn đọc mật khẩu từ dấu nhắc bảng điều khiển, vì vậy bạn sẽ cần phải tạo một cá thể Console
từ System
(Console
không phải là một singleton).
scala> val standardIn = System.console()
standardIn: java.io.Console = [email protected]
scala> val password = standardIn.readPassword()
Lưu ý rằng không import
là cần thiết vì suy luận kiểu Scala và thực tế là System
là đã có trong phạm vi theo mặc định.
Tham khảo javadoc cho java.io.Console
để biết thêm thông tin.
EDIT: Trong một chương trình Scala biên soạn:
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()
}
}
Biên dịch/chạy:
$ scalac ReadPassword.scala
$ scala ReadPassword
standardIn object: [email protected]
Password>
Password: hello world
nhờ để trả lời. Tôi có thể có được một thể hiện của Console trong công cụ REPL, như trong mã của bạn. Tuy nhiên, nếu tôi cố gắng làm tương tự trong một chương trình Scala (hoặc trong một bảng tính Scala), standardIn nhận được một giá trị null. Không biết tại sao. – Sergio
'standardIn' là đối tượng điều khiển, phương thức' getPassword' sẽ trả về một 'char []' của mật khẩu được nhập vào. Tôi đã thêm một ví dụ về một chương trình mẫu tôi đã viết và nó dường như hoạt động tốt. – adelbertc