Просто угадайте работу ... Вам понадобится определенный разделитель объявления самонаведения. Представьте, что =>
был просто опущен. this: String
будет синтаксически корректным утверждением (хотя средство проверки типа будет жаловаться).
Так какой должен быть разделитель? Вам не нужны вложенные фигурные скобки, такие как trait A { self: String { ... }}
. Итак, какие существуют непарные существующие разделители? =>
- единственный, о котором я могу думать.
Где =>
Используется в других местах? В качестве сахара для типов функций (A => B
) и для функциональных тел (i: Int => i + 1
). Также для аргументов по имени, а также для случаев совпадения шаблонов. Это последнее использование несколько согласовано с самонаведением. Это похоже на соответствие this
определенного типа, а затем определение тела в зависимости от этого «совпадения». Я не знаю, может быть, это глупая аналогия.
Это странный бит синтаксиса, который я думаю, поскольку он кажется стрелкой, которая будет указывать на что-то ... – david
Да, в начале обучения Скала я всегда думал, что стрелка указывает на остальную часть тела , выглядела как функция и меня сбивала с толку. –