文档章节

scala入门之函数定义

柳哥
 柳哥
发布于 2014/06/05 19:44
字数 493
阅读 830
收藏 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

© 著作权归作者所有

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

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

nitycka
2017/11/01
0
0
写给Java程序员的Scala入门教程

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

羊八井
2016/07/25
4.2K
20
为Play初学者准备的Scala基础知识

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

joymufeng
2017/05/16
0
0
写给Python程序员的Scala入门教程

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

羊八井
2015/11/29
906
2
scala入门-02基础知识->方法

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

stark_summer
2015/01/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

人生苦短:Python里的17个“超赞操作

人生苦短,我选Python”。那么,你真的掌握了Python吗? 1. 交换变量 有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换。比如: # 输入 a = 5 b ...

糖宝lsh
43分钟前
4
0
咕泡-spring中常用设计模式概述

设计模式就是经验之谈,供后人借鉴,解决一些具有代表性的问题 设计模式来源于生活,反过来帮助我们更好生活 设计模式提升代码的可读性、可扩展性、维护成本、复杂业务问题 千万不要死记硬背...

职业搬砖20年
今天
2
0
day59-20180817-流利阅读笔记-待学习

假·照骗,真·社交焦虑 雪梨 2018-08-17 1.今日导读 发朋友圈之前,不少人为了展现更美好的生活状态会对照片加以“微调”,或是加个滤镜显得逼格更高,或是磨个皮瘦个脸拉个大长腿。现在,国...

aibinxiao
今天
23
0
OSChina 周五乱弹 —— 姑娘在这个节日里表白你接受么?

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @Sharon啊:完全被这个小姐姐圈粉了,学两首她的歌去哈哈 分享王贰浪的单曲《往后余生(翻自 马良)》 《往后余生(翻自 马良)》- 王贰浪 手...

小小编辑
今天
1K
16
为什么HashMap要自己实现writeObject和readObject方法?

为什么HashMap要自己实现writeObject和readObject方法? 如果你有仔细阅读过HashMap的源码,那么你一定注意过一个问题:HashMap中有两个私有方法。 private void writeObject(java.io.Objec...

DemonsI
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部