Bài viết phổ biến của tác giả
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有一条包含通用字段的记录,在更改通用字段时是否有任何方法可以模仿方便的 với
语法?
即如果我有
type User<'photo> = // 'photo can be Bitmap or Url
{ first: string; last: string; address: string; phone: string; photo: 'photo }
我希望能够写出类似的东西
let loadUser(user: User): User =
{ user with
photo = download user.photo }
但看起来我必须写这个。
let loadUser(user: User): User =
{ first = user.first
last = user.last
address = user.address
phone = user.phone
photo = download user.photo }
有没有办法获得第一个语法?
1 Câu trả lời
不直接,但您可以将您的Người sử dụng
变成仿函数(对于照片
部分):
let fmap (f : 'a -> 'b) (user: User<'a>): User<'b> =
{ first = user.first
last = user.last
address = user.address
phone = user.phone
photo = f user.photo }
一次并写入(例如):
let loadUser (user : User) : User =
fmap download user
如果您愿意,您也可以重命名 fmap
vì withPhoto
let loadUser = withPhoto download
:D
Hiện nay,photo
部分是任何类型的数据/类型可能有点奇怪,所以我会考虑将这部分重命名为 giá trị
- 但这只是我
关于f# - 记录 "with"语法中的泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30398881/
Tôi là một lập trình viên xuất sắc, rất giỏi!