文档章节

scala基础篇-控制结构和函数

R
 RogerIs谭纶
发布于 2015/02/21 18:43
字数 309
阅读 75
收藏 1

####条件表达式

scala> if(x>1)"positive" else -1

####循环

while(n>0){
}
for(i <- 0 to 10){
    println(i)
}
for(i <- 0 until s.length){ //i的最后一个值是s.length-1
    println(i)
}

for(i <- 表达式)语法结构表示让变量遍历右边表达式的所有值。 ####函数

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

def - 开始定义函数 max - 函数名 x: Int, y: Int - 两个参数类型 (): Int - 函数返回类型

def abs(x: Double) = if (x>=0) x else -x

只要函数不是递归的,就不需要指定返回值类型,scala编译器可以通过=符号右边的表达式推断出返回类型。 不像Java或C++,函数式语言通常不用return,函数块中最后一个表达式的值就是函数的返回值,比较下面两个函数的结果

def foo(x: Int) = {
    var r = 1
    r = r + x
}
def bar(x: Int) = {
    var r = 1
    r = r + x
    r
}
scala> foo(2)

scala> bar(2)
res0: Int = 3

对于不返回值的函数称之为过程,可以不显式声明,也可以设定返回类型为Unit。

def foo() = {
    println("hello world.")
}

也可以写做:

def foo(): Unit = {
    println("hello world.")
}

© 著作权归作者所有

共有 人打赏支持
R
粉丝 2
博文 7
码字总数 2584
作品 0
西安
高级程序员
Scala控制结构、函数式编程解析讲解

首先,Scala的基本控制结构包括顺序、条件、循环控制结构三种方式,这和其他的JVM语言是一致的,但是Scala存在一些高级控制结构类模式匹配。 主要有if、for、while三种控制结构方式: 一、i...

csdn5215的博客
2017/12/16
0
0
学习苹果Swift语言的一些在线资源(2014年9月10日更新)

Swift是苹果为OS X和iOS平台引入的一种新的程序设计语言,这种程序设计语言已经激发了开发者社区的大量关注。仅仅几天之内,在Stack Overflow网站上提出的关于Swift的问题已经有500多个,在G...

tyou
2015/08/11
0
0
Scala笔记整理(一):scala基本知识

[TOC] Scala简介 Scala是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala运行在Java虚拟机上,并兼容现有的Java程序。 Scala源代码被...

xpleaf
04/18
0
0
为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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
33分钟前
3
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
37分钟前
4
0
发现抓包软件fiddler的bug

1个请求他跳转之后,直接400,被拦在了Apache,使用fiddler 的,replay requests 是同样的结果,但是replay composer确是正常的。 也就是说这replay requests 是发原来的包,replay composer...

NLGBZJ
47分钟前
1
0
linux screen 命令详解

shell关闭后, 主机仍然运行 screen命令 启动jenkins以后, screen, 然后按ctrl+a 再按d 这样暂停了子界面, 这时候回到了父界面 用screen –ls查看目前子界面的状态 [root@free /]# screen -l...

SuShine
48分钟前
4
0
mac机器切换无线网络导致网页不能打开的问题

问题: 公司和家里使用不同的WI-FI,每次从家到公司时自动切换网络后,公司的许多地址不能访问, ping域名是可以ping同的,但是网页却打不开... 问题分析: 初步猜想是DNS缓存的问题? 对于MAC系统没...

Lennie002
51分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部