Вообразите следующий интерфейс в C#:
interface IFoo {
void Bar();
}
Как я могу реализовать это в F#? Все примеры я нашел в течение 30 минут поиска шоу онлайн только примеры, которые имеют типы возврата, которые я предполагаю, более распространены в функциональном стиле, но что-то я не могу избежать в этом экземпляре.
Вот то, что я имею до сих пор:
type Bar() =
interface IFoo with
member this.Bar() =
void
Сбои с _FS0010:
Неожиданное ключевое слово 'пусто' в expression_.
Эквивалент - единица, которая синтаксически определяется как ()
.
type Bar() =
interface IFoo with
member this.Bar () = ()
Для получения общей информации о типах F # см.
На этой странице:
Тип unit имеет только один значение, записанное "()". Это немного похоже на «void» в том смысле, что если у вас есть функция, которую вы вызываете только для побочных эффектов (например, printf), такая функция будет иметь тип возврата «unit». Каждая функция принимает аргумент и возвращает результат, поэтому вы используете «единицу», чтобы указать, что аргумент / результат неинтересны / бессмысленны.
Тип возврата должен быть (), поэтому что-то вроде member this.Bar = () должно помочь