文档章节

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
为Play初学者准备的Scala基础知识

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

joymufeng
2017/05/16
0
0
Scala笔记整理(一):scala基本知识

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

xpleaf
04/18
0
0
Scala--控制结构和函数

条件表达式 的表达式语法和java类似,只是需要注意的是: 1、if/else有返回值 2、scala代码结尾不需要“;”,除非一行要写多条语句,这个和类似。 上图中,在scala脚本中,打印出了if的返回值...

xiaoxiaomo
2016/04/04
38
0

没有更多内容

加载失败,请刷新页面

加载更多

Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生...

engeue
32分钟前
1
0
通过ajax访问远程天气预报服务

http://www.webxml.com.cn/zh_cn/index.aspx 更改wsdl文件 打开文件将15行,51行,101行去掉 然后把文件复制到c盘 然后在桌面上面就生成了文件 将文件打成jar包 package cn.it.ws.weather;...

江戸川
今天
1
0
聊聊storm的tickTuple

序 本文主要研究一下storm的tickTuple 实例 TickWordCountBolt public class TickWordCountBolt extends BaseBasicBolt { private static final Logger LOGGER = LoggerFactory.getLogg......

go4it
今天
1
0
自动装箱和自动拆箱

自动装箱和自动拆箱 Java 提供了 8 种基本数据类型,每种数据类型都有其对应的包装类型,包装类是面向对象的类,是一种高级的数据类型,可以进行一些比较复杂的操作,它们是引用类型而不再基...

tsmyk0715
今天
2
0
简易审计系统

1、有时候我们需要对线上用户的操作进行记录,可以进行追踪,出现问题追究责任,但是linux自带的history并不会实时的记录(仅仅在内存中,当用户正常退出(exit logout )时才会记录到history文件里...

芬野de博客
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部