Вопросы по теме 'type-constraints'

Попытка понять Haskell =› против определения типов
Зачем в Haskell определять функцию с ограничением типа: ghci> :t (==) (==) :: (Eq a) => a -> a -> Bool Вместо того, чтобы определять его, чтобы его тип был: ghci> :t (==) (==) :: Eq -> Eq -> Bool
250 просмотров
schedule 18.03.2023

Как работает List.max‹'T›?
Из документов MSDN подпись List.max : List.max : 'T list -> 'T (requires comparison) Мои вопросы: Как компилятор статически проверяет, что 'T поддерживает операцию сравнения? Является ли requires ключевым словом для указания...
301 просмотров

Разница между интерфейсом как ограничением типа и интерфейсом как параметром?
Если бы я хотел создать метод, который принимает экземпляр IList в качестве параметра (или любой другой интерфейс, но давайте использовать IList в качестве примера), я мог бы создать универсальный метод с ограничением типа, например: public...
773 просмотров

Реализация блокировки на C++
Извините, что вопрос этой проблемы может быть немного расплывчатым. Я пытаюсь перенести этот код ObjectPool с С# на С++, но, похоже, есть некоторые части, в которых я не знаю, как мне действовать. Коды следующие: using System; namespace...
645 просмотров
schedule 30.05.2023

почему отсутствующий необязательный параметр вызывает ошибку несовместимых типов
Может кто-нибудь объяснить, почему я получаю сообщение об ошибке «Несовместимый тип» (Delphi XE3) в следующей программе (подробности см. в комментариях внизу кода), когда я опускаю необязательный параметр для конструктора? program Test; {$APPTYPE...
555 просмотров

Частичное применение дженериков для ограничений типа
В настоящее время я пытаюсь создать общий интерфейс, в котором каждый (общий) класс, производный от него, будет иметь метод, принимающий делегата, который принимает параметр типа и возвращает другой класс того же типа, только с другим параметром типа....
106 просмотров

Фильтровать по ограничению
Хорошо, я понимаю, что это может быть странный вопрос. Но мне все равно нужно спросить. Это происходит следующим образом: Предположим, у меня есть что-то вроде следующего: type Foo() = member this.MyFooFun i = 2*i type Bar() =...
102 просмотров
schedule 25.11.2022

Отсутствует ограничение типа в F#
В следующем коде обратите внимание на ограничение типа для get_Zero: type Wrapper<'t> = { Data : 't[] } let compute<'t when 't : (static member get_Zero : unit -> 't) and 't : (static member (~-) : 't -> 't) and 't :...
340 просмотров
schedule 28.10.2022

Symfony2 ограничивает проверку сущности yml
У меня отношение многие ко многим (пользователь и учетная запись). В пользовательском объекте у меня есть частные группы свойств (коллекция массивов). Когда я пытаюсь проверить это свойство (группы) с помощью простого «NotBlank», это не работает....
654 просмотров

Как переопределить этот метод, используя «где T: объект»
Я пытаюсь переопределить этот метод, но не понимаю, как public virtual TUserData GetCurrentUser<TUserData>() where TUserData : UserData { LoadTokenCookie(String.Empty); if (!IsCurrentUserAuthorized())...
134 просмотров
schedule 12.03.2024

Избыточное общее ограничение?
Рассмотрим следующий универсальный метод: public T2 Frob<T1, T2>(T1 item) where T1 : class, T2 => item as T2; Компилятор откажется компилировать этот код; Параметр типа 'T2' нельзя использовать с оператором 'as',...
231 просмотров
schedule 29.12.2021

Как обеспечить соблюдение формального протокола с помощью шаблонов C++?
При использовании утиной печати во время компиляции, присущей стилю шаблона , есть ли способ принудительно требование, чтобы аргумент шаблона реализовывал определенные методы с определенными сигнатурами? struct ProtocolT { void g() const;...
496 просмотров

Добавление ограничений типа в объявления данных
Я читал о создании наших собственных типов и классов типов из Learn You a Haskell for Great Good . Я не совсем понимаю поведение компилятора Haskell, когда я добавляю ограничение типа к своим объявлениям data . Например, у меня есть {-#...
651 просмотров
schedule 25.03.2022

C # не может сделать тип notnull допускающим значение NULL
Я пытаюсь создать тип, похожий на Result в Rust или Either в Haskell, и я дошел до этого: public struct Result<TResult, TError> where TResult : notnull where TError : notnull { private readonly OneOf<TResult, TError>...
658 просмотров

Обобщенные ограничения в предложении параметра типа?
SLS определяет синтаксис параметра типа как TypeParamClause ::= ‘[’ VariantTypeParam {‘,’ VariantTypeParam} ‘]’ FunTypeParamClause::= ‘[’ TypeParam {‘,’ TypeParam} ‘]’ VariantTypeParam ::= {Annotation} [‘+’ | ‘-’] TypeParam TypeParam...
37 просмотров

Композиция функций с аннотацией типа для значений по умолчанию
Допустим, у меня есть следующий тип: data ImageSize = ImageSize {height :: Int, width :: Int} Теперь я хочу преобразовать это в массив JSON (по устаревшим причинам поверхности API): instance ToJSON ImageSize where toJSON ImageSize{..} =...
59 просмотров