2012-03-21 7 views
13

Nếu tôi có một lớp học mà phải mất một tuple trong constructor của nó giữa các giá trị khác như:Làm thế nào để bạn khai báo một bí danh loại trong một hàm tạo scala?

class Foo(a: Int, b: String, c: (Int, String)) 

Làm thế nào để sử dụng một loại trừu tượng để cung cấp cho các tuple tên mô tả hơn trong một thời trang nhẹ (không có gói nó trong một lớp học mới):

class Foo(a: Int, b: String, c: Dave) 

tôi không chắc chắn làm thế nào để mang lại một loại bí danh trong phạm vi (hoặc nếu đây là điều tốt nhất để làm):

type Dave = (Int, String) 

tôi s có một quy ước cho nơi để xác định các loại theo cách này (hoặc tôi nên xác định các trường hợp lớp học và gói tất cả mọi thứ ...)?

Tôi đánh giá cao điều đó không có ý nghĩa trong nhiều tình huống nhưng nếu tôi thực sự chỉ tìm kiếm một tên mô tả hơn là nó có thể?

Cảm ơn!

+3

xem [này] (http://stackoverflow.com/questions/3400734/package-objects) – Jamil

+0

Ah rất mát mẻ, cảm ơn! –

+0

'loại bí danh' là một thuật ngữ tốt hơn nhiều so với tôi đã tìm được ... –

Trả lời

6

Bạn có thể sử dụng một loại bí danh như:

scala> type MyTuple = Tuple2[Int,String] 
defined type alias MyTuple 

scala> val x = new MyTuple(1, "one") 
x: (Int, String) = (1,one) 
+2

Vâng, đó là phạm vi của bí danh loại mà tôi gặp sự cố, Jamil đã chỉ cho tôi đóng gói các đối tượng trong nhận xét ở trên. –

+0

@MatthewNhấp vào vui lòng đóng câu hỏi –