Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I declaratively create a list in Scala?

In C# I can declare a list declaratively, in other words declare its structure and initialise it at the same time as follows:

var users = new List<User>
            {
                new User {Name = "tom", Age = 12}, 
                new User {Name = "bill", Age = 23}
            };

Ignoring the differences between a List in .Net and a List in Scala (ie, feel free to use a different collection type), is it possible to do something similar in Scala 2.8?

UPDATE

Adapting Thomas' code from below I believe this is the nearest equivalent to the C# code shown:

class User(var name: String = "", var age: Int = 0)

val users = List(
  new User(name = "tom", age = 12), 
  new User(name = "bill", age = 23))
like image 707
Rupert Bates Avatar asked Nov 28 '22 15:11

Rupert Bates


2 Answers

What about:

case class User(name: String, age: Int)

val users = List(User("tom", 12), User("bill", 23))

which will give you:

users: List[User] = List(User(tom,12), User(bill,23))
like image 164
Thomas Rawyler Avatar answered Jan 29 '23 02:01

Thomas Rawyler


val users = User("tom", 12) :: User("bill", 23) :: Nil

You could also use Scalas tupel class:

val users = ("tom", 12) :: ("bill", 23) :: Nil
like image 36
gruenewa Avatar answered Jan 29 '23 04:01

gruenewa