F#教程:不变性


目前为止我们还一直避免的话题就是F#中必须注意的:变量无法再被赋值。

let x = 10
let y = 5
let x = x + y // Compile Error

  一旦变量赋值以后,再次赋值就会出现错误。

  F#的变量为什么要有不变性呢?

  习惯了目前一些变量是可变的过程语言和面向对象语言,可能就会有变量不可变的话是否可以很好编码的疑问。

  这样也就无法写i++以及i += 2之类的增量处理。

  去年稍微接触了下Haskell,尽管全部变量都是不变的,但还是可以很好地编码。F#也吸收了 Haskell的想法。

  不过,F#中有一个mutable的关键字。看来是可以同时处理不变的和可变的变量。关于这些,我想以后想去调查下。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3