Вариативные функции Scala и Seq

Насколько мне известно, трейты вроде Listили Seqреализованы в стандартной библиотеке Scala, а не являются частью самого языка.

Есть одна вещь, которую я не понимаю, хотя :синтаксис для функций с переменным числом выглядит так

def foo(args: String*) =...

Внутренне у вас есть доступ к argsи это будет Seq.

Мне не ясно:

  • Seqсчитается специальной структурой данных, достаточной для того, чтобы появиться как часть языка, или
  • нотация *здесь является частным случаем более общего синтаксиса, в котором удается избежать каких-либо ссылок на конкретные интерфейсы структур данных.

Кто-нибудь знает, какой из них является правильной интерпретацией?

13
задан Andrea 13 August 2012 в 09:51
поделиться