Unity 6.3
0 онлайн 66 гостей 3 в системе
Вход

SearchExpressionType

перечисление

Описание

Тип, используемый для описания выражения. Выражение может иметь несколько типов. Например, Set также является iterable. Ключевое слово также считается строчным значением. SearchExpressionType могут быть использованы с SearchExpressionEvaluatorAttribute для описания списка параметров оценщика.

[SearchExpressionEvaluator(SearchExpressionType.Iterable | SearchExpressionType.Variadic)]
[SearchExpressionEvaluatorSignatureOverload(SearchExpressionType.Number, SearchExpressionType.Iterable | SearchExpressionType.Variadic)]
[Description("Extract and returns the X first results for each expression.")]
public static IEnumerable<SearchItem> TakeXFirst(SearchExpressionContext c)
{
    var argIndex = 0;
    var takeNumber = 1;
    if (c.args[0].types.HasFlag(SearchExpressionType.Number))
    {
        ++argIndex;
        takeNumber = Math.Max((int)(c.args[0].GetNumberValue(takeNumber)), 0);
    }

    for ( ; argIndex < c.args.Length; ++argIndex)
    {
        var iterable = c.args[argIndex].Execute(c);
        var taken = 0;
        foreach (var item in iterable)
        {
            if (item == null)
                yield return null;
            else
            {
                yield return item;
                ++taken;
                if (taken == takeNumber)
                {
                    c.Break();
                    break;
                }
            }
        }
    }
}

Свойства

Свойство Описание
NilОбозначает недействительное выражение.
OptionalИспользуется в SearchExpressionEvaluatorAttribute для указания параметра aprameter как необязательного.
VariadicИспользуется в SearchExpressionEvaluatorAttribute, чтобы указать: параметр можно передавать несколько раз. Например, count{Iterable1, Iterable2,... IterableN} можно выполнить с любым числом итерируемых параметров.
BooleanОбозначает буквальное выражение логического значения.
NumberОбозначает буквальное выражение числового значения.
TextОбозначает выражение, представляющее текстовое (строковое) значение.
SelectorОбозначает выражение, представляющее селектор. Все селекторы начинаются с @. Например, @size в выражении: select{t:material, @size}.
KeywordОбозначает выражение, дающее SearchExpressionKeyword.
SetОбозначает итеративное выражение группы обычно буквальных значений. Например, [1, 2, 3] или [material, shader, texture2d].
FunctionОбозначает выражение функции-вычислителя. Например: count{}.
QueryStringОбозначает выражение, представляющее строку запроса. Например: t:shader.
ExpandableОбозначает выражение, использующее оператор... для указания, что оно может быть расширено.
GroupОбозначает выражение для группы элементов. Группы формируются вычислителем groupBy{}.
LiteralОбозначает выражение, построенное из буквальных значений: булевых, числовых, текстовых или ключевых. Например, в выражении набора [1,"hello",true] все значения набора являются буквальными.
IterableОбозначает выражение, по которому можно проходить, получая SearchItem. Множество: [1, 2, 3], строка запроса: t:shader и вычислитель: count{} — всё это примеры итерируемых объектов.
AnyValueОбозначает выражение с типом значения: буквальное или повторяемое.
AnyExpressionОбозначает любое выражение любого типа (Literal, Iterable или Selector).