Как реализовать интерфейсного участника, который возвращается пусто в F#

Вообразите следующий интерфейс в C#:

interface IFoo {
    void Bar();
}

Как я могу реализовать это в F#? Все примеры я нашел в течение 30 минут поиска шоу онлайн только примеры, которые имеют типы возврата, которые я предполагаю, более распространены в функциональном стиле, но что-то я не могу избежать в этом экземпляре.

Вот то, что я имею до сих пор:

type Bar() =
    interface IFoo with
        member this.Bar() =
            void

Сбои с _FS0010:

Неожиданное ключевое слово 'пусто' в expression_.

20
задан Guy Coder 29 February 2016 в 14:29
поделиться

3 ответа

Эквивалент - единица, которая синтаксически определяется как () .

type Bar() =
    interface IFoo with
        member this.Bar () = ()
22
ответ дан 30 November 2019 в 00:00
поделиться

Для получения общей информации о типах F # см.

Базовый синтаксис типов F #

На этой странице:

Тип unit имеет только один значение, записанное "()". Это немного похоже на «void» в том смысле, что если у вас есть функция, которую вы вызываете только для побочных эффектов (например, printf), такая функция будет иметь тип возврата «unit». Каждая функция принимает аргумент и возвращает результат, поэтому вы используете «единицу», чтобы указать, что аргумент / результат неинтересны / бессмысленны.

7
ответ дан 30 November 2019 в 00:00
поделиться

Тип возврата должен быть (), поэтому что-то вроде member this.Bar = () должно помочь

6
ответ дан 30 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

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