在多行上使用命名参数调用 F# 中的方法
Calling method in F# with named parameters on multiple lines
我有一些 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# 中格式化多行方法调用而不发出警告?
Lightweight Syntax 的正式描述包含在 F# language spec 中,您所追求的特定功能称为 Offside Context。这将允许您减少缩进到最后一个上下文的列加上一个或多个附加列。越位上下文将在 Let
上下文中的 =
分配之后立即遇到,以及在 Paren
上下文中的左括号之后。
实际上,你可以有这样的缩进:
let request =
Models.UserService.CreateUserRequest(
email = "email@example.com",
password = "password",
... )
我有一些 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# 中格式化多行方法调用而不发出警告?
Lightweight Syntax 的正式描述包含在 F# language spec 中,您所追求的特定功能称为 Offside Context。这将允许您减少缩进到最后一个上下文的列加上一个或多个附加列。越位上下文将在 Let
上下文中的 =
分配之后立即遇到,以及在 Paren
上下文中的左括号之后。
实际上,你可以有这样的缩进:
let request =
Models.UserService.CreateUserRequest(
email = "email@example.com",
password = "password",
... )