Pertanyaan Bagaimana Anda mendeklarasikan alias tipe dalam konstruktor skala?


Jika saya memiliki kelas yang mengambil tuple di konstruktornya di antara nilai-nilai lain seperti:

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

Bagaimana saya menggunakan tipe abstrak untuk memberikan tuple nama yang lebih deskriptif dengan cara yang ringan (tanpa membungkusnya di kelas baru):

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

Saya tidak yakin cara menghadirkan alias dalam lingkup (atau apakah ini hal terbaik untuk dilakukan):

type Dave = (Int, String) 

Adakah konvensi tempat menentukan jenis dengan cara ini (atau haruskah saya mendefinisikan kelas kasus dan membungkus semuanya ...)?

Saya menghargai bahwa itu tidak masuk akal dalam banyak situasi, tetapi jika saya benar-benar hanya mencari nama yang lebih deskriptif, apakah mungkin?

Terima kasih!


14
2018-03-21 10:53


asal


Jawaban:


Anda bisa menggunakan alias tipe seperti:

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

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

8
2018-03-21 12:29