我正在玩F#,如果我不使用某些结果,编译器会发出警告(这里描述的问题相同).由于F#甚至具有"忽略"功能,它似乎有点重要,但我不明白为什么 - 为什么C#不关心它,但F#呢?
scr*_*wtp 10
C#和F#之间的一个基本区别是,在F#中,一切都是表达式(而不是表达式和语句的混合).这包括C风格语言中的语句,如控制流结构.
在以功能方式编程时,您希望将一小部分引用透明的代码组合在一起.一切都是表达的事实正好适用于此.
另一方面,当你做一些给你价值的东西,然后你把它留在那里时,你就会反对这种心态.你要么是为了一些副作用,要么只是在某个地方有一段遗留代码.在任何一种情况下,公平的游戏都要警告你,你正在做一些不典型的事情.
F#不鼓励,但不禁止副作用,并且允许您在序列中执行(可能是副作用)表达式,只要中间类型是类型unit
.这就是做什么ignore
- 接受争论和回归unit
.