Каково значение двоеточия, подчеркивания и звезды в SiteMap лифта (записи:_ *)?

Это - очень хороший вопрос. По моему опыту, с атрибутами, я думаю, что ограничение существует потому что, когда размышляющий над атрибутом оно создало бы условие, в котором необходимо будет проверить на все возможные перестановки типа: typeof(Validates<string>), typeof(Validates<SomeCustomType>), и т.д.

, По-моему, если пользовательская проверка требуется в зависимости от типа, атрибут не может быть лучшим подходом.

, Возможно, класс проверки, который берет в SomeCustomValidationDelegate или ISomeCustomValidator в качестве параметра, был бы лучшим подходом.

59
задан Palimondo 14 July 2009 в 19:46
поделиться

1 ответ

Хорошо, после того, как мой коллега упомянул мне, что он столкнулся с этим секретным заклинанием в книге Программирование на Scala , я поискал в своей копии и нашел его описание в Раздел 8.8 Повторяющиеся параметры . (Хотя вам нужно искать с пробелом между двоеточием и подчеркиванием: - /) Есть одно предложение, объясняющее это как:

... добавьте аргумент массива с двоеточием и _ * символ, например: scala> echo (arr: _ *)

Эта запись указывает компилятору передавать каждый элемент arr в качестве собственного аргумента в echo , а не все его как единственный аргумент.

Я считаю, что описание , предлагаемое здесь , более полезно.

Итак, x: _ * - это как объявление типа, которое сообщает компилятору обрабатывать x как повторяющийся параметр (также известный как список аргументов переменной длины - vararg ).

77
ответ дан 24 November 2019 в 18:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: