Кевин понял все правильно.Основное наблюдение заключается в том, что синтаксис «имя типа» прекрасно работает, если типы являются короткими ключевыми словами, такими как int или float :
int x = 1
float d = 0.0
По ценеодного из них вы получаете две части информации: «здесь начинается новое определение» и «вот (определение) тип определения».Но в настоящее время мы далеко минуем область простых примитивных типов.Если вы пишете
HashMap<Shape, Pair<String, String>> shapeInfo = makeInfo()
, самая важная часть того, что вы определяете (имя), скрывается за выражением типа.Сравните с
val shapeInfo: HashMap[Shape, (String, String)] = makeInfo()
Это ясно говорит
- Здесь мы определяем значение, а не переменную или метод (val)
- Название определяемой нами вещиэто shapeInfo
- Если вы заботитесь об этом, вот тип (HashMap [...])