Вызов метода в F # с именованными параметрами на нескольких строках - PullRequest
0 голосов
/ 30 октября 2018

У меня есть некоторый код F #, который вызывает метод, написанный на C # с большим количеством параметров.

Чтобы сделать вещи понятными, я использую именованные параметры при вызове метода:

let request = Models.UserService.CreateUserRequest(
    email = "email@example.com",
    password = "password",
    title = "title",
    firstname = "firstname",
    lastname = "lastname",
    nickname = "nickname",
    locale = "locale",
    birthDate = "birthdate",
    currency = "USD",
    ipAddress = "127.0.0.1",
    address = address,
    mobilePhone = "+1 123 456 7890"
)

Однако я получаю предупреждение об отступе:

warning FS0058: Possible incorrect indentation: this token is offside of context started at position (30:19). Try indenting this token further or using standard formatting conventions.

Очевидно, что если я не использую именованные параметры или помещу все в одну строку, предупреждение исчезнет. Но я хочу отформатировать это так, чтобы оно было разборчивым.

Есть ли способ отформатировать вызов метода в нескольких строках в F # без предупреждения?

1 Ответ

0 голосов
/ 30 октября 2018

Формальное описание облегченного синтаксиса содержится в спецификации языка F # , а конкретная функция, которую вы ищете, называется «вне контекста». Это позволит вам уменьшить отступ для столбца последнего контекста плюс один или несколько дополнительных столбцов. Офсайдный контекст будет встречаться сразу после назначения = в контексте Let, а также после открытия в контексте Paren.

В действительности вы можете иметь отступ, подобный этому:

let request =
    Models.UserService.CreateUserRequest(
        email = "email@example.com",
        password = "password",
        ... )
...