文档章节

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

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

####条件表达式

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

学习苹果Swift语言的一些在线资源(2014年9月10日更新)

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

tyou ⋅ 2015/08/11 ⋅ 0

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

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

joymufeng ⋅ 2017/05/16 ⋅ 0

Scala笔记整理(一):scala基本知识

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

xpleaf ⋅ 04/18 ⋅ 0

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

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

羊八井 ⋅ 2015/11/29 ⋅ 2

Scala--控制结构和函数

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

xiaoxiaomo ⋅ 2016/04/04 ⋅ 0

DSL 创建的深度神经网络--DeepLearning.scala

DeepLearning.scala 是一个 DSL 创建的深度神经网络,Scala 语言编写。利用 DeepLearning.scala,普通程序员能够从简单的代码构建复杂的神经网络。 你可以像往常一样编写代码,唯一的区别是基...

匿名 ⋅ 2016/11/30 ⋅ 0

scala函数式编程

 结构  学会使用Scala中主要的结构控制语句  数组  学会数组的声明与使用  映射  了解Scala中的映射的基础知识  包与引用 Scala控制结构  判断(if表达式)  循环(while/do...

泡海椒 ⋅ 2016/04/09 ⋅ 0

C++雾中风景2:struct还是class?

之前因为都在忙着毕业的开题答辩与投稿论文的事宜,一直没有时间更新这个系列的文章。Riki师弟看了上一篇雾中风景的文章,希望我继续把这个系列的文章写下去。坦白说,C++的特性很多,这也不...

LeeHappen ⋅ 2017/11/12 ⋅ 0

Scala 学习纪要

2016-03-08 转眼一晃到了16年的38节,突然想放些scala的学习心得,翻着过去的博客突然发现了这一篇博客,竟然又是好久没有更新了。 不过对于这段时间scala的使用和学习,对scala及函数式编程...

大师兄悟空 ⋅ 2015/05/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vuex学习

1、getters基本用法: 在store.js里面用const声明我们的getters属性。 const getters={ count:function (state) { return state.count +=100; }} export default new Vuex.S......

大美琴 ⋅ 38分钟前 ⋅ 0

292. Nim Game - LeetCode

Question 292. Nim Game Solution 思路:试着列举一下,就能发现一个n只要不是4的倍数,就能赢。 n 是否能赢1 true2 true3 true4 false 不论删除几,对方都能一把赢5 t...

yysue ⋅ 50分钟前 ⋅ 0

G6 关系数据可视化图形库 简单使用

官网 https://antv.alipay.com/zh-cn/g6/1.x/index.html 效果 首先生成给定数目的小球,并设置随机的颜色 按照顺序,设置小球的角度以及坐标 设置定时器,每隔一定的时间修改小球的角度和坐标...

阿豪boy ⋅ 52分钟前 ⋅ 0

6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩

zip压缩工具 zip命令可以压缩目录和文件,-r 压缩目录。 zip使用方法 zip 1.txt.zip 1.txt //压缩文件 zip -r 123.zip 123/ //压缩目录 unzip 1.txt.zip //解压 unzip 123.zip -d /root/456...

Linux_老吴 ⋅ 今天 ⋅ 0

react-loadable使用跳坑

官方给react-loadable的定义是: A higher order component for loading components with dynamic imports. 动态路由示例 withLoadable.js import React from 'react'import Loadable fro......

pengqinmm ⋅ 今天 ⋅ 0

记录工作中遇到的坑

1、ios safari浏览器向下滚动会触发window resize事件

端木遗风 ⋅ 今天 ⋅ 0

桥接设计模式

1、概述: 将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化 如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构 桥接模式将继承模式转化成关联关系,他降...

职业搬砖20年 ⋅ 今天 ⋅ 0

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 今天 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 今天 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部