过程: 在Scala中,定义函数时,如果函数体直接包裹在花括号里面,而没有使用=连接,则函数的返回值类型就是Unit.这样的函数就被称之为过程. 过程通常用于不需要返回值类型的函数. 过程还有一种写法,就是将函数的放回值类型定义为Unit. def sayHello(name:String) = "Hello,"+name #返回类型是String def sayHello(name:String) {print("Hello,"+name);"Hello…
Scala 过程  在Scala中,定义函数时,如果函数体直接包裹在了花括号里面,而没有使用=连接,则函数的返回值类型就是Unit.这样的函数就被称之为过程.过程通常用于不需要返回值的函数. 过程还有一种写法,就是将函数的返回值类型定义为Unit. def sayHello(name: String) = "Hello, " + name def sayHello(name: String) { print("Hello, " + name); "Hell…
高阶函数 Scala中,由于函数时一等公民,因此可以直接将某个函数传入其他函数,作为参数.这个功能是极其强大的,也是Java这种面向对象的编程语言所不具备的. 接收其他函数作为函数参数的函数,也被称作高阶函数 val sayHelloFunc =(name:String) => println("Hello,"+name) def greeting(func:(String)=>Unit,name:String){func(name)} greeting(sayHelloF…
当程序变得庞大时,你需要一些方法把它们分割成更小的,更易管理的片段.为了分割控制流,Scala 提供了所有有经验的程序员都熟悉的方式:把代码分割成函数.实际上,Scala 提供了许多 Java 中没有的定义函数的方式.除了作为对象成员函数的方法之外,还有内嵌在函数中的函数, 函数文本和函数值.本章带你体会所有 Scala 中的这些函数的风味. 方法 定义函数最通用的方法是作为某个对象的成员.这种函数被称为方法:method. 作为例子,示例代码  展示了两个可以合作根据一个给定的文件名读文件并打…
函数的返回值两种形式 return 0-255 0表示成功,1-255表示失败-------通常用于判断 echo 返回一个字符串------------通常用于返回一个执行的结果 return.sh #!/bin/bash # this_pid=$$ function nginxck { ps -ef | grep nginx | grep -v grep | grep -v $this_pid | &> /dev/null ];then return else return fi } n…
scala> var counter = 0 counter: Int = 0 scala> def foo = {counter += 1; counter} foo: Int scala> val value1 = foo; lazy val value2 = foo; def value3 = foo value1: Int = 1 value2: Int = <lazy> value3: Int scala> value1 res39: Int = 1 scal…
Scala中Trait是一种特殊概念 首先我们可以将Triat做为接口来使用,此时的Triat就与java中的接口非常相似 在Triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出具体的实现即可 类可以使用extend是关键字来继承Triat,注意这里不是Implement,而是extends,在Scala中没有Implement的概念,无论是继承还是Triat都是extends 类继承Triat后,必须实现其中的抽象方法,实现是不需要override关键字 Scala不支持对类进…
对象 Object,相当于class单个实例,通常在里面放一些静态的filed或method 第一次调用object方法时候,就会执行object的constructor,也就是Object中不在method中的代码,但是Object不能定义接收参数的constructor 注意,Object的constructor只会在第一次被调用的时执行一次,以后再次调用就不会执行construtctor了 object通常作为单例模式来实现,或者存放静态成员,例如: object Person{ priv…
创建Map //创建一个不可变的Map val ages = Map("Leo" -> 30,"Jen" ->25,"Jack" ->23) ages("Leo") =31 //创建一个可变的Map val ages =scala.collection.mutable.Map("Leo" ->30,"Jen" ->25,"Jack" -&…
在Scala中,Array代表的含义与Java类似,也是长度不可改变的数组.此外,由于Scala与java都是运行在JVM中,双方可以互相调用,因此Scala数组底层实际上是java数组.列如字符串数组java的String[],整数的数组int[]. val a = new Array[Int](10) val a = new Array[String](10) 可以直接使用Array()创建数组,元素类型自动推断 val a = Array("Hello","world&…