`
liuchangshui
  • 浏览: 10784 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Scala语言学习3-函数定义

阅读更多

函数定义

Scala作为一门函数式语言,函数在其中的地位无疑是一等公民,接下来我们看看函数是如何定义的,来个简单的求大小:

scala> def max(x:Int, y:Int): Int={ if (x>y) x else y }

max: (x: Int, y: Int)Int

 

Scala的函数定义解释如下:

def 为函数定义的开始

max 为函数名

(x:Int, y:Int) 本例中的参数为两个,都为Int类型,并且必须指明参数类型,因为Scala编译器无法推断出函数参数类型

: Int= 其中Int为函数的返回类型,也就是整个函数的结果类型:result type,在通常情况下可以不写结果类型,编译器可以推断出来的,但是也有例外,比如说递归的情形就必须显示的执行函数结果类型:

         scala>  def recursion (n:Int):Int={

     |       if ( n > 1){

     |         n* recursion (n-1)

     |       }else 1

     |   }

recursion: (n: Int)Int

当然,考虑到变成习惯,最好是显示的说明一下函数的结果类型,这样从阅读的角度来看,可读性提高很多。

{ if (x>y) x else y } 是函数体

 

上例提到的是有参数的函数,那么就应该有没有参数的函数,也没有返回值的函数,我们来看看编译器对于这样的函数是怎么解释的

scala> def helloWorle(){println("Hello,World")}

helloWorle: ()Unit

如大家所见,如果没有返回的参数,那么就不指定返回类型,并且在无结果类型的函数中,会出现如下提示

 

helloWorle: ()Unit Unit就相当于Java中的void,代表的就是无返回值可以做个类比,便于吸收

0
0
分享到:
评论

相关推荐

    Scala语言规范-2019.rar

    Scala语言规范-Scala 是一门类 Java 的编程语言,它结合了面向对象编程和函数式编程。 Scala 是纯面向对象的,每个值都是一个对象,对象的类型和行为由类定义,不同的类可以通过混入(mixin)的方式组合在一起。 Scala...

    快学Scala课后习题答案

    快学Scala课后习题答案,包含各个章节答案word版和pdf版

    Scala语言规范版本:2.7

    Scala是一门类Java的编程语言,它结合了面向对象编程和函数式编程。Scala是纯面向对象的,每个值都是一个对象,对象的类型和行为由类定义,不同的类可以通过混入(mixin)的方式组合在一起。

    scala学习手册.zip

    Scala也是一种函数式...Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化 。Scala的Case Class及其内置的模式匹配相当于函数式编程语言中常用的代数类型(Algebraic Type)。

    scala-2.13.1.tgz

    Scala是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala运行于JVM之上,因此它可以...

    Scala 语言规范

    Scala 是一门类 Java 的编程语言,它结合了面向对象编程和函数式编程。Scala 是 纯面向对象的,每个值都是一个对象,对象的类型和行为由类定义,不同的类可以通过混 入(mixin)的方式组合在一起。Scala 的设计目的是...

    spark从入门到实战

    2.为什么学习SCALA语言及SCALA语言介绍和学习提纲 3.SCALA环境搭建及IDEA安装配置(JAVA安装、SCALA安装及IDEA安装)) 4.SCALA语言HelloWorld及安装总结(作业LINUX系统安装) 5.SCALA中变量的声明(两种方式) 6...

    scala中文教程(java 平台开发语言 scala 简单教程)

    Scala 是一种很有品味的类型语言:它是静态类型的,但仅在需要的地方显式定义类型。Scala 向对象和函数式语言两方面获得了强大的特性,然后用一些新奇的点子把它们漂亮地整合成一 它的语法是如此的轻量级,而原语又...

    scala-fmi-2019:索非亚大学教授的Scala函数式编程课程材料

    Scala作为SCalable语言。 样例代码安装和工具你好,世界测验[] Scala原理基本类型和基本类型。 文字定义val , var , def 。 类型和类型推断职能类型层次结构Null , Nothing , Unit 控制结构- if , while , ...

    Scala程序设计(第2版)

    3.14 Trait:Scala语言的接口和“混入” 83 3.15 本章回顾与下一章提要 85 第4章 模式匹配 86 4.1 简单匹配 86 4.2 match中的值、变量和类型 87 4.3 序列的匹配 90 4.4 元组的匹配 94 4.5 ...

    快学Scala 电子书 pdf

    Scala是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala运行于JVM之上,因此它可以...

    快学Scala.中文完整版

    《快学Scala》是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala运行于JVM之上,因此它...

    快学Scala PDF扫描版

    Scala是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala运行于JVM之上,因此它可以...

    Scala与Java的区别

    Scala函数定义需 def 开头,Scala函数没有返回值用Unit,相当于java的void Scala中return 可以省略,直接用表达式作为返回 scala支持自动类型推测,变量var 常量val;scala更多的是采用常量,而不是变量来解决问题,...

    快学 Scala.pdf

    Cay S.Horstmann所著的《快学Scala》内容简介:Scala是一门以Java 虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的**特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发...

    Scala快速入门

    Cay S.Horstmann所著的《快学Scala》内容简介:Scala是一门以Java 虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用...

    《快学Scala》PDF中文版

    Scala是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala运行于JVM之上,因此它可以...

    快学Scala(中文完整版)

    Scala是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala运行于JVM之上,因此它可以...

    快学scala第二版中英文.zip

    Scala是一门主要以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的*佳特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala默认运行于JVM之上,因此...

    Scala详细总结(精辟版++).docx

    scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。 scala是纯粹的面向对象的语言。java虽然是面向对象的语言,但是它不是纯粹的,因为java的基本数据...

Global site tag (gtag.js) - Google Analytics