文档章节

scala入门之函数定义

柳哥
 柳哥
发布于 2014/06/05 19:44
字数 493
阅读 825
收藏 0
点赞 0
评论 0

如何写scala函数,如下:

函数的定义以def开始。然后是函数名,本例中是max,跟着是括号里带有冒号分隔的参数列表。函数的每个参数都必须带有前缀冒号的类型标注因为scala编译器无法推断函数的参数类型。本例中,名叫max的函数带有两个参数,x和y,都是Int类型。在max参数列表的括号之后你会看到另一个“: Int”类型标注。这是max函数的结果类型(result type)定义。跟在函数结果类型之后的是一个等号和一对包含了函数体的花括号
有时候scala编译器需要函数结果类型的定义。比方说,如果函数是递归的,那么函数结果类型就必须被明确地说明。然而在max的例子里,即使不写结果类型编译器也能够推断它(注:尽管如此,就算编译器不需要,显示说明函数结果类型也经常是个好主意,这种类型标注可以使代码便于阅读)。同样,如果函数仅包含一个语句,那么连花括号都可以选择不写。如下:

以下是即不带参数也不返回有用结果的函数定义:

函数greet()定义之后,解释器输出返回greet: ()Unit。“greet”当然是函数名,空白的括号说明函数不带参数。Unit是greet的结果类型,指的是函数没有有效的返回值。scala的Unit类型比较类似于Java的void类型,而且实际上Java里返回void的方法都会被映射为返回Unit的scala方法。因此结果类型为Unit的方法,并非是为了得到返回值,而是为了其他的运行效果
最后,如果想要离开解释器,输入 :quit 或者:q

© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 202
博文 394
码字总数 347782
作品 0
杭州
技术主管
Scala编程语言视频教程|Scala视频教程

Scala编程语言视频教程 分享网盘下载——https://pan.baidu.com/s/1kUFL6Ub 密码: m7k4 Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于...

nitycka ⋅ 2017/11/01 ⋅ 0

Scala极速入门

定义 Scala语言是一种面向对象语言,同时又结合了命令式(imperative)和函数式(functional)编程风格。官网描述:Object-Oriented Meets Functional(面向对象遇到函数式编程)。 安装 下载...

Jackson_Mu ⋅ 2015/01/04 ⋅ 58

写给Java程序员的Scala入门教程

(原文链接:http://www.yangbajing.me/2016/07/24/写给java程序员的scala入门教程/,转载请注明) 之前因为Spark的引入,写了一篇《写给Python程序员的Scala入门教程》。那篇文章简单对比了...

羊八井 ⋅ 2016/07/25 ⋅ 20

为Play初学者准备的Scala基础知识

1 前言 本文的主要目的是为了让Play Framework的初学者快速了解Scala语言,算是一篇Play Framework的入门前传吧。 使用PlayFramework可以极大的提高开发效率,但是需要注意,PlayJava入门很简...

joymufeng ⋅ 2017/05/16 ⋅ 0

scala入门-02基础知识->方法

首先在src下的main下的scala下创建一个包为org.scala.base 创建一个scala类名称为HelloWorld.scla 由于main方法要位于object对象中,所以我们创建一个object 名称为HelloWorld 并增加main方法...

stark_summer ⋅ 2015/01/09 ⋅ 0

写给Python程序员的Scala入门教程

随着业务和数据的需要,我们引入了。对的支持还是挺好的,但毕竟它还是使用开发的,且现有的API并没有100%覆盖Python。所以就有了这篇文章,让Python程序员可以接触这门更高(级)、更快(速...

羊八井 ⋅ 2015/11/29 ⋅ 2

Scala基础入门-1

首先需要Scala开发环境的搭建,网上自己找教程。 声明常量与变量 val foo = 0 // 常量var bar = 0 // 变量    在Scala中,更加鼓励使用val来进行声明,也就是推荐使用常量。在大部分时候不...

wei-spring ⋅ 2015/11/08 ⋅ 0

Java/Scala互操作实践 1:基础操作

本文将以Spring Boot为例,介绍下实际工作中的Java/Scala互操作。在提高个人效率、满足自我追求的情况下更多的照顾到团队不同人的实际。同时也是想说明,在同一个工程里混用Java和Scala语言是...

羊八井 ⋅ 2016/10/10 ⋅ 10

Spark入门到精通视频学习资料--第一章、Scala基础与实践

第一章、Scala基础与实践(3讲) Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式和函数式的编程风格...

dongzhumao ⋅ 2015/02/06 ⋅ 0

为Play初学者准备的Scala基础知识

1 前言 本文的主要目的是为了让Play Framework的初学者快速了解Scala语言,算是一篇Play Framework的入门前传吧。使用PlayFramework可以极大的提高开发效率,但是需要注意,PlayJava入门很简...

joymufeng ⋅ 2016/10/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 22分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 33分钟前 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 38分钟前 ⋅ 0

B树和B+树的总结

B树 为什么要B树 磁盘中有两个机械运动的部分,分别是盘片旋转和磁臂移动。盘片旋转就是我们市面上所提到的多少转每分钟,而磁盘移动则是在盘片旋转到指定位置以后,移动磁臂后开始进行数据的...

浮躁的码农 ⋅ 41分钟前 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 今天 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

centos7 git安装

由于centos中的源仓库中git不是最新版本,需要进行源码安装。 1、查看yum仓库git信息 [root@iZm5e3d4r5i5ml889vh6esZ zh]# yum info gitLoaded plugins: fastestmirrorLoading mirror s...

xixingzhe ⋅ 今天 ⋅ 0

input file 重复上传同一张图片失效的解决办法

解决办法 方法一:来回切换input[type='file']的type属性值,可以是‘text’,'button','button'....,然后再切换回来‘file’ 方法二:每次取消图片预览后,重置input[type='file']的value的...

时刻在奔跑 ⋅ 今天 ⋅ 0

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 今天 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部