Có cách nào, để truy cập loại A
từ Some[A]
?Nhận từ 'Một số [A] `đến` A`
type X = Some[Int]
type Y = ??? // what do I have to write here to get `Int`
tôi có thể xác định Option
kiểu của riêng tôi mà cho phép này:
sealed trait Option[+A]
case object None extends Option[Nothing]
case class Some[+A](a: A) {
type Inner = A
}
và sau đó sử dụng
type X = Some[Int]
type Y = X#Inner
Đây có phải là cũng có thể bằng cách nào đó với bình thường Scala loại Lựa chọn?
Nó nhắc nhở tôi về https: // stackoverflow.com/questions/29038214/why-scala-does-not-have-a-decltype và https://stackoverflow.com/questions/29034921/can-function-type-be-defined-by-inference – Suma
Tôi nghĩ nói chung, điều này có thể không thực hiện được, nhưng tùy thuộc vào trường hợp sử dụng của bạn, bạn có thể lấy nó thông qua một cái gì đó như 'def x [T] (opt: Option [T]) {/ * T có sẵn tại đây * /}' hoặc có thể với con đường phụ thuộc vào ty pe. –