gpt4 book ai didi

f# - 如何命名 F# 函数声明的参数

转载 作者:行者123 更新时间:2023-12-02 05:42:44 28 4
gpt4 key购买 nike

如果我有一个包含所有数据库函数的记录类型,如下所示

type Database =
{ getThingsByCountThenLength: int -> int -> Thing list
getUsersByFirstNameThenLastName: string -> string -> User list }

有没有办法给输入参数命名,这样更清晰?类似于以下内容(无法编译)

type Database =
{ getThings: count:int -> length:int -> Thing list
getUsers: firstName:string -> lastName:string -> User list }

(请注意,它确实适用于接口(interface);我只想将其用于记录。)

type IDatabase =
abstract getThings: count:int -> length:int -> Thing list
abstract getUsers: firstName:string -> lastName:string -> User list

最佳答案

这不是一个直接的答案(我认为没有),但作为替代方案,您可以使用 single-case union types ,这不仅会增加清晰度并继续允许柯里化(Currying),而且还会强制编译时正确性。

type Count = Count of int
type Length = Length of int
type FirstName = FirstName of string
type LastName = LastName of string

type Database =
{ getThings: Count -> Length -> Thing list
getUsers: FirstName -> LastName -> User list }

关于f# - 如何命名 F# 函数声明的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33246725/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com