Scala基础
1.seq[String]
用[]表示参数类型,java使用<>表示参数,因为Scala 允许以<命名方法和变量名,java不允许
2.支持range的类型:Char 、Int 、 Long 、 Float 、 Double 、BigInt(任一大小整数)、BigDecimal(任意大小浮点数)
//闭区间,步长2
1 to 10 by 2
//左闭又开,步长1
1 until 10
//字符根据ASCII码递增
'd' to 'a' by 1
3.Scala返回类型Unit类型,类似java void,但Unit类型是有值的,值为().
4.java的方法名在Scala中是保留字时,使用反引号
import java.util.Scanner.`match`
5.for yield for循环返回新的集合
val list2 = for {i <- list if(i.contains("a"))} yield i
6.可插入字符串
val a = "a"
val b = 2f
println(s"${a}bc")
printf("%.2f\nb",b)
println(f"${b}%.2f\nb")
7.模式匹配
在 case 子句中,以小写字母开头的标识符被认为是用来提取待匹配值的新变量。如果需要引用之前已经定义的变量时,应使用反引号将其包围。以大写字母开头的标识符被认为是类型名称
def checkY(y: Int) = {
for {
x <- Seq(99, 100, 101,"")
} {
val str = x match {
//判断是否等于形参y需加反引号,否则相当于匹配所有输入,并把输入赋予y
case `y` => "found y!"
//判断类型是否为整型
case i: Int => "int: "+i
//匹配所有输入
case _ =>"unexpected"
}
println(str)
}
8、for推导式
for{} yield 返回值类型为for中第一个生成器表达式的类型
for 推导式的语法实际上是编译器提供的语法糖,它会调用容器方法 foreach 、 map 、flatMap 以及 withFilter 方法
//result类型为Vector
val list = List("a","b","c","d")
val vector = Vector("A","B","C","D")
val result = for{
vector2 <- vector
list2 <-list
list3 <- list2
} yield list3
print(result)
}
Scala基础的更多相关文章
- 【Scala学习之一】 Scala基础语法
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- Scala学习(一)--Scala基础学习
Scala基础学习 摘要: 在篇主要内容:如何把Scala当做工业级的便携计算器使用,如何用Scala处理数字以及其他算术操作.在这个过程中,我们将介绍一系列重要的Scala概念和惯用法.同时你还将学 ...
- Scala基础(1)
Scala基础语法 声明与定义: val,常量声明 val x:T(把x声明成一个类型为T的常量) x是变量的名字,T是变量的类型 v ...
- scala 基础知识总结
在最开始处引入 log 相关的 包 import org.apache.log4j.{Logger,Level} 在需要屏蔽日志输出的地方加上这两行代码 // 屏蔽不必要的日志显示在终端上 Logge ...
- 1.scala基础语法总结
Scala基础语法总结:Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的.如果一行里写多个语句那么分号是需要的 val s = "菜鸟教程"; pr ...
- Scala 基础(8)—— 占位符_和部分应用函数
1. 占位符 _ 针对 Scala 基础(7)—— 函数字面量和一等函数 中最后提到的,关于 filter 函数字面量的精简写法,可以使用占位符 _ 来代替. 占位符_,用来表示一个或者多个参数.(这 ...
- Scala 基础(7)—— 函数字面量和一等函数
1. 函数字面量 在 Scala 基础(3)—— 基础类型和基础操作 中提到了函数字面量,这里具体解释函数字面量的语法. 下面展示一个具体的函数字面量,它由三部分组成: (x: Int, y: Int ...
- Scala 基础(5)—— 构建函数式对象
有了 Scala 基础(4)—— 类和对象 的前提,现在就可以来构建一个基于 Scala 的函数式对象. 下面开始构造一个有理数对象 Rational. 1. 主构造方法和辅助构造方法 对于每一个类的 ...
- Scala基础知识[一]
摘要:在Scala 是 Scalable Language 的简写,是一门多范式(multi-paradigm)的编程语言.设计初衷是要集成面向对象编程和函数式编程的各种特性.Scala 运行在Jav ...
- Scala基础简述
* Scala基础简述 本文章作为Scala快速学习的教程,前提环境是:我假设在此之前,你已经学会了Java编程语言,并且我们以随学随用为目标(在此不会深度挖掘探讨Scala更高级层次的知识).其中语 ...
随机推荐
- php不用正则表达式实现身份证号验证详解
写了一个身份证号验证类,php小白,写的不好,欢迎各位大神给我多提意见和建议 身份证号分为四部分,第一部分是前6位为地址码,7-14位是出生日期,15-17位是同一地方同一天出生的男孩为奇数,女孩是偶 ...
- egret中场景跳转的动画
原理:创建一个截取当前场景的截图然后对截图进行bitmap处理加上tween.优点:无需任何图片,特效!适用于任何场景! //1.卷帘特效 //2.左右切换移动 //3.直接翻 //4.旋转掉落 // ...
- 第一章04:JDK与JRE 区别
JDK = 开发工具 JRE = 运行程序 跨平台性 java程序 = 可以在任何系统中运行(不分系统) JVM = java虚拟机(不同系统下载不一样的JDK版本)(安装的时候包含在jre里面)
- MySQL MERGE存储引擎
写这篇文章,主要是因为面试的时候,面试官问我怎样统计所有的分表(假设按天分表)数据,我说了两种方案,第一种是最笨的方法,就是循环查询所有表数据(肯定不能采用):第二种方法是,利用中间件,每天定时把前一 ...
- MySQL【日期和时间处理函数】的使用方法
名称 调用示例 示例结果 描述 NOW NOW() 2018-09-19 09:24:10 返回当前日期和时间 CURDATE CURDATE() 2018-09-19 返回当前日期 CURTIME ...
- s5p6818开发板uboot网络开通
手上的开发板网络默认是不通的,但是通过阅读uboot源码,发现uboot源码中,是有对这个网络的初始化的实现的函数的,只不过是没有调用而已,所以,要手动调用这个函数,把板子的网络调通: 首先是遇到了这 ...
- inner join on (程序测试验证结果。) _学习贴
inner join on 两张表:机制就是第一张表的每一条数据,都会去和第二章表的每一条数据 依次进行匹配.匹配成功,就会显示出来. (程序测试验证结果.) 数据库连接 1 对 1 create ...
- idea构建spark开发环境,并本地运行wordcount
1.首先现在idea,官网:https://www.jetbrains.com/idea/ 2.安装jdk1.8,scala2.11 3.下载idea后,需要在idea中安装scala的插件,安装的方 ...
- Ubuntu的显示问题不全解决
首先我们安装的是Ubuntu 16.04版本.最开始一直不能解分辨率问题,导致信息显示不全 利用xrandr -s 1369x768(中间x是乘号不是英文字母) 命令来设置分辨率, 需注意的是: 1. ...
- C++入门程序作业3
/* 输出n位数据的格雷码 The gray code is a binary numeral system where two successive values differ in only on ...