Scala讲座:全局变量问题的解决

发表于:2011-5-12 10:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:牛尾刚    来源:51Testing软件测试网采编

  函数式语言采用的是第二种方法,也就是一旦给变量赋值后该变量的值将不会改变(图3)。

Scala讲座 图3:函数式语言解决全局变量问题的方法

  因此,下述的代码可以认为将数字“100”绑定在变量“price”上。感觉上就像变量“price”可以像数字“100”那样被使用。以前的连载也提到过,Scala中如果用val来定义变量的话,该变量将不能被重新赋值。为了正真的函数式编程就用val来定义变量吧。

  • scala> val price = 100
  • price: Int = 100
  •   这样使变量的再赋值变得不可能之后,就能保证引用的透明性了。也就是说,使用同样的值作为参数来调用同一函数的情况下,任何时候取得的返回值都是一致的。

      例如面向对象的情况下,由于对象实例含有内部状态,所以一旦内部状态改变后,即使使用相同的参数向同一个对象实例传递消息,取得的结果也有可能不同(图4)。如果是函数式编程的话就没有这种“副作用”了。

    Scala讲座 图4:副作用概念图

    22/2<12
    《2023软件测试行业现状调查报告》独家发布~

    关注51Testing

    联系我们

    快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

    法律顾问:上海兰迪律师事务所 项棋律师
    版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
    投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

    沪ICP备05003035号

    沪公网安备 31010102002173号