val oznacza referencję tylko do odczytu, której po inicjalizacji nie można przypisać ponownie. var to referencja mutowalna, którą można nadpisywać. val nie gwarantuje niemutowalności obiektu, ale sprzyja bezpieczniejszemu kodowi.