Lets say i have a variable
val allF = (Some(1), "some string", 2.99, "another string", 1, Some(30))
Now i want to declare a few more variables of type same as allF i.e. (Some[Int], String, Double, String, Int, Some[Int]). I can do
var a1: (Some[Int], String, Double, String, Int, Some[Int]) = _
var a2: (Some[Int], String, Double, String, Int, Some[Int]) = _
... and so on
or i can do
type T = (Some[Int], String, Double, String, Int, Some[Int])
var a1: T = _
var a2: T = _
.. and do on
Is there some way i can use the variable allF to get its type and declare variables a1, a2, a3, ... like this
val allF = (Some(1), "some string", 2.99, "another string", 1, Some(30))
var a1: typeof(allF) = _
var a2: typeof(allF) = _
...
UPDATE - Also for situations like this
val allF = (Some(1), "some string", 2.99, "another string", 1, Some(30))
xyz match {
case y: (???)\\ if y is of the same type as allF
}