В Scala значения и объекты имеют одноэлементные типы, назначаемые им индивидуально.Таким образом, мы можем иметь:
val x = 1
type X = x.type
val y = 2
type Y = y.type
- Могу ли я написать метод, который принимает в качестве аргумента только x?
Я пытался:
val x = 1
def foo(i: x.type ) = println(x.toString)
, но это дает мне ошибку.Я думаю, что это жалуется на тот факт, что тип неизвестен.Есть ли способ указать тот факт, что i
, как ожидается, будет int, чтобы мы могли использовать, скажем, .tofloat
для него?
Do X
и Y
выше, а именно синглетные типы 1
& 2
, имеют общего предка, поэтому я могу написать общий код, который включает в себя синглтонный тип, скажем, Int
значения.
Точно так же,
, если бы у меня было, например,
val list = [1,2,3]
, есть ли способ написания кода, который генерирует эти коды и может использоваться только для одного из этих значений?