Scala相当于函数中的C静态变量
发布时间:2020-12-16 19:11:15 所属栏目:安全 来源:网络整理
导读:我对 Scala很新,偶然发现以下问题: 什么是Scala相当于函数的静态变量? void foo(){ static int x = 5; x++; printf("%d",x);} 编辑: 我想要实现的是一种函数调用计数器 – 我想检查我的函数执行了多少次,同时限制了这个计数器的可见性,以便它不能从外部修
我对
Scala很新,偶然发现以下问题:
什么是Scala相当于函数的静态变量? void foo() { static int x = 5; x++; printf("%d",x); } 编辑: 我想要实现的是一种函数调用计数器 – 我想检查我的函数执行了多少次,同时限制了这个计数器的可见性,以便它不能从外部修改. 解决方法
这是一段具有类似效果的代码:
scala> object f extends Function0[Unit] { | var x = 0; | def apply = { | x = x + 1; | println(x); | } | } defined module f scala> f() 1 scala> f() 2 虽然我必须强调这是一个非常糟糕的做法,因为它杀了referential transparency. 如果你真的需要这种行为,请考虑这个: type State = Int def f(state: State) = { val newState = state + 1 println(state); newState; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |