强制使scala函数产生“副作用”

 1     //
 2     def swap(arr:Array[Int],a:Int,b:Int)={
 3         val tmp = arr(a)
 4         arr(a)=arr(b)
 5         arr(b)=tmp
 6     }
 7 def shuffle(arr:Array[Int])={
 8     val t = new Random()
 9     for(i <- (1 to arr.length-1).toArray.reverse)
10     swap(arr,i,t.nextInt(i+1))
11 }
时间: 2024-10-08 23:40:34

强制使scala函数产生“副作用”的相关文章

02Scala学习-Scala函数定义、流程控制、异常处理入门实战

一 Scala 函数的定义 按照以下格式定义scala函数. def 函数名称(函数输入参数类型){ //函数的实现提 } 1) 第一个简单的例子 HelloWorld object Test2 { def main(args: Array[String]):Unit = { println("HelloWorld") } } a)可以看到输出语句的结尾没有以“;”结束,因为scala的设计者认为,多大一个字符对开发者来说是痛苦的. 他不太赞成在语句的结束写 “;” , 但你也可以写 

Scala 函数

环境: CentOS 6.3 看例子,说实话. 入门函数: scala> def max(x: Int,y: Int): Int = { | if (x > y) x           //竖线| 是换行是自动显示的,不是代码本身 | else y | } max: (x: Int, y: Int)Int //上面代码敲完后,这行就会自动出来 scala> max(3,6) res3: Int = 6 scala> max(3,1) res4: Int = 3 解析:def   

Scala函数的调用

scala函数分为: 传名调用和传值调用 传名调用: 就是将未计算的参数表达式直接应用到函数内部 传值调用: 先计算参数表达式的值,再应用到函数内部 案例:      object FunctionTest {    def main(args: Array[String]) {         delayed(time());    }    def time() = {       println("获取时间,单位为纳秒")       System.nanoTime   }   

Scala 函数和方法的定义与使用

摘要: 函数是一组一起执行一个任务的语句. 您可以把代码划分到不同的函数中.如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的. Scala 有函数和方法,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法. 我们可以在任何地方定义函数,甚至可以在函数内定义函数(内嵌函数).更重要的一点是 Scala 函数名可以有以下特殊字符:+, ++, ~, &,-, -- , \,

scala函数

函数是一组一起执行任务的语句.可以将代码放到独立的功能.如何划分你的代码不同功能?在逻辑上,通常是让每个函数执行特定的任务. Scala有函数和方法,我们术语说的方法和函数互换用微小的差别.Scala方法是其中有一个名字,签名,任选一些注释,有的字节码,其中如在Scala中函数是可被分配给一个变量的完整对象类的一部分.换句话说,函数,其被定义为某些对象的一个成员,被称为方法. 函数定义可以出现在在源文件的任何地方,Scala允许嵌套函数的定义,那就是其他函数定义的内部函数定义.需要注意的最重要的

[scala] scala 函数 (⑦)

1.scala 函数定义 2.scala 高阶函数 3.匿名函数 4.柯里化 import scala.math._ /** * @author xwolf * @date 2017-04-24 9:57 * @since 1.8 */ class Function { // _ 将round 方法转化为函数 val cel = round _ def add(x:Int,y:Int) = x+y //函数 def f(x : => Int) = x.+(3) def m (r : => Do

王家林亲传《DT大数据梦工厂》第二讲Scala函数定义、流程控制、异常处理入门

你想了解大数据,你想成为年薪百万吗?那你还等着什么,快点来吧!跟着王家林老师学习spark大数据 第二讲主要讲了Scala函数定义.流程控制.异常处理入门 函数定义: 关键字(def) 函数名称 参数(参数名称:参数类型):返回内容类型  =  { 函数体 } 注意: Unit:空的返回内容 Scala结束语是不需要写分号 下面一代码为例: //不带参数 Object  ScalaBasics{ def doWhile(){ var line = “” do{ line = readLine()

函数的副作用 —— 纯函数的理解

函数副作用指当调用函数时,除了返回函数值之外,还对主调用函数产生附加的影响.例如修改全局变量(函数外的变量)或修改参数. 纯函数 纯函数(Pure Function)——输入输出数据流全是显式(Explicit)的. 显式的意思是,函数与外界交换数据只有一个唯一渠道——参数和返回值:函数从函数外部接受的所有输入信息都通过参数传递到该函数内部:函数输出到函数外部的所有信息都通过返回值传递到该函数外部. 非纯函数 如果一个函数通过隐式(Implicit)方式,从外界获取数据,或者向外部输出数据,那么

[Scala基础系列 02]Scala函数

本文主要内容如下: 变量和不变量 函数和过程 函数的参数 分号 1.变量和不变量 1.1.变量 Scala的变量分两种,var和val.var,即variable,类似于我们在Java等其他语言中接触到的变量,而val,是value,类似于我们在其他语言中用到的不可重新赋值的常量,或者final变量. 为什么会有这种区别,这是由于很多情况下,其实你不需要一个可变的var,尤其在函数式编程中,更为明显.不变性能给程序带来很多便利,因此Scala非常强调不可变(immutable)的概念.关于不可变