【发布时间】:2014-07-04 12:00:04
【问题描述】:
我正在编写一个函数,它通过StringReader 接收多行字符串并将每一行作为seq 的一个项目返回
let symbolSeq = seq {
let mutable line = reader.ReadLine()
while !line <> null do
yield line
line <- reader.ReadLine()
}
我得到了一个
这个表达式应该有类型'a ref,但这里有类型字符串
on while !--->line null do
当我去掉line前面的!时,我得到一个
可变变量“line”的使用方式无效。可变变量不能被闭包捕获。考虑通过“ref”和“!”消除这种突变的使用或使用堆分配的可变参考单元。
为什么?
【问题讨论】:
标签: f#