Насколько мне известно, трейты вроде List
или Seq
реализованы в стандартной библиотеке Scala, а не являются частью самого языка.
Есть одна вещь, которую я не понимаю, хотя :синтаксис для функций с переменным числом выглядит так
def foo(args: String*) =...
Внутренне у вас есть доступ к args
и это будет Seq
.
Мне не ясно:
Seq
считается специальной структурой данных, достаточной для того, чтобы появиться как часть языка, или*
здесь является частным случаем более общего синтаксиса, в котором удается избежать каких-либо ссылок на конкретные интерфейсы структур данных.Кто-нибудь знает, какой из них является правильной интерпретацией?