Scala-Unit-2-Scala基础语法1
一、Scala程序的开始->HelloScala
这里的操作如同java的helloworld程序,直接放代码!
object HelloScala{
def main(args:Array[String]){
println("HelloScala")
}
}
在命令行操作中输入命令:
scalac HelloScala.scala
scala HelloScala
二、Scala的数据类型
Scala与java相同,有八种基本数据类型:
Byte/Char/Short/Int/Long/Float/Double/Boolean
还有Unit类型(与java中void相似),表示无值,主要用于不返回任何结果的结果类型
注意:Scala中没有包装类
三、Scala定义变量
两个关键字:val、var
val:定义的变量值是不可变的
var:定义的变量值是可变的
eg. val a:Long = 1 var b:String = "我很帅"
注意:Scala编译器会自动的推断数据类型!!
eg. val a = 1 (a自动为Int类型)
var s = "you are ugly" (s自动为String类型)
val h = println("cool") (h自动为Unit类型)
四、条件表达式(一下命令都是在windows命令行操作中运行的)
if语句:
val x = 2
val y = if(x>0) 1 esle 2
val m = if(x<0) -1 if(x>1) 1 else 0
混合类型:
val z = if(x>0) "true" else 1
输出语句为: z:Any = "true"
注意:Any相当于Java中的object基类,它包含Anyval和AnyRef
Anyval:包含scala所有类型、AnyRef:包含Scala clsaaes与Java classes
五、块表达式
相当于java中的程序快,在Scala中用{}包裹的一些列表达式及块表达式,块中最后一个表达式的值就是块的值。
可以在idea中创建Scala工程展示
sbt版本:1.1.0 scala版本:2.11.8
创建Scala类注意,kind类型选择object
六、循环(一下是在Windows命令行操作中运行,其中”<-“相当于java中for循环变量的意思)
val rs = 1 to 10 //Scala会创建一个包含从1到10的10个元素的数组rs
for (x <- rs) println(x) //便利数组rs,并输出每个元素
val arr = Array(1,3,5) //创建不可变数组arr,包含1,3,5三个元素
for (i <- arr) println(i) //便利数组arr并输出每个元素
高级for循环:
for(i <- 1 to 5 ;j <- 1 to 10 if i != j) print((10 * i + j) + " ")

for(i <- 1 to 10) yield i*10 //关键字yield:生成一个新的集合
val ab = for(i <- 1 to 10;if(i % 2 == 0)) yeild i

注意:1 to 10 同 1.to(10) 表达的意思是一样的,to是一个方法,在Scala中可以省略“.”
1.to(10).map(_*100) //创建一个元素为1到10的集合并将每个元素都乘以100
map:取出元素 _:代表集合中的元素
七、运算符
在Scala中,+、-、*、/、%的作用和Java中是一样的,但特别的是他们都是方法
eg. 1 + 2 和 1.+(2) 的结果是一样的
object ScalaDemo2{
def mian(args:Array[String]):unit={
println(m1(1,6))
println(m2(3,6))
}
def m1(a:Int,b:Int):Int={
a+b
}
def m2(a:Int,b:Int):Int=a*b
}
Scala-Unit-2-Scala基础语法1的更多相关文章
- Spark入门到精通--(第二节)Scala编程详解基础语法
Scala是什么? Scala是以实现scaleable language为初衷设计出来的一门语言.官方中,称它是object-oriented language和functional languag ...
- Scala - 快速学习03 - 基础语法
1- 变量 变量 mutable variable 在程序运行过程中其值可能发生改变的量 关键词var定义变量,定义时直接进行求值 常量 immutable variable 在程序运行过程中其值不会 ...
- Scala(二)——基础语法(与Java的区分)和函数式编程
Scala快速入门(二) 一.键盘输入 关于基本类型的运算,以及复制运算,条件运算,运算符等知识,均和Java语言一样,这里不过多叙述. val name = StdIn.readLine() Std ...
- Scala学习教程笔记一之基础语法,条件控制,循环控制,函数,数组,集合
前言:Scala的安装教程:http://www.cnblogs.com/biehongli/p/8065679.html 1:Scala之基础语法学习笔记: :声明val变量:可以使用val来声明变 ...
- 【Scala学习之一】 Scala基础语法
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- Scala简介及基础语法
一.scala简介 官网:https://www.scala-lang.org/ Scala语言很强大,集成了面向对象和函数式编程的特点. 运行在JVM(jdk). 大数据中为什么学习scala? s ...
- 1.scala基础语法总结
Scala基础语法总结:Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的.如果一行里写多个语句那么分号是需要的 val s = "菜鸟教程"; pr ...
- Scala学习(一)——基础语法
Scala语言是一种面向对象语言,结合了命令式(imperative)和函数式(functional)编程风格,其设计理念是创造一种更好地支持组件的语言. 特性 多范式(Multi-Paradigm) ...
- Scala基础语法 (一)
如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我 ...
- Scala入门系列(一):基础语法
Scala基础语法 Scala与JAVA的关系 Scala是基于Java虚拟机,也就是JVM的一门编程语言,所有Scala的代码都需要经过编译为字节码,然后交由Java虚拟机来运行. 所以Scala和 ...
随机推荐
- 洛谷P4689 [Ynoi2016]这是我自己的发明 [莫队]
传送门 ynoi中比较良心不卡常的题. 思路 没有换根操作时显然可以变成dfs序莫队随便搞. 换根操作时一个子树可以变成两段区间的并集,也随便搞搞就好了. 这题完全不卡常,随便过. 代码 #inclu ...
- 表单,table的css
table{table_layout:fixed;border-collapse: collapse;border-spacing: 0}border-collapse: collapse 边框合并在 ...
- PID控制器开发笔记之六:不完全微分PID控制器的实现
从PID控制的基本原理我们知道,微分信号的引入可改善系统的动态特性,但也存在一个问题,那就是容易引进高频干扰,在偏差扰动突变时尤其显出微分项的不足.为了解决这个问题人们引入低通滤波方式来解决这一问题. ...
- Weblogic12c 单节点安装
第一节weblogic12c 的安装 WebLogic除了包括WebLogic Server服务器之外,还包括一些围绕WebLogic的产品,习惯上我们说的WebLogic是指WebLogic S ...
- ORA-00845 MEMORY_TARGET not supported on this system 的解决
本文来源:宁静致远 的<ORA-00845 MEMORY_TARGET not supported on this system 的解决> oracle11g数据库在执行dbca或者调整s ...
- Confluence 6 任务的类型
下面是有关你可以调整的计划任务列表. Confluence 备份(Back Up Confluence) 对 Confluence 站点执行备份操作. 每集群(Per cluster) At 2am ...
- Linux磁盘与文件系统管理笔记
### Linux磁盘与文件系统管理 linux 最传统的文件系统格式是EXT2,centos7 默认文件系统是xfs(日志式文件系统) 磁盘的组成: 盘片 机械手臂 主轴马达 (机械硬盘) 磁盘格式 ...
- java报错:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
看包的路径是否对对:比如这样不对(...src/object/obietc) 其它解决方法转载: https://www.cnblogs.com/yadongliang/p/5918228.html ...
- HTML&javaSkcript&CSS&jQuery&ajax(六)
一.HTML表单 1.<input type="text">定义文本输入的单上输入字段,<form> First name:<br> < ...
- Nginx详解二十七:Nginx架构篇之安全篇
1.常见的恶意行为:爬虫行为和恶意抓取.资源盗用 解决方案: 基础防盗链功能:不让恶意用户能轻易爬去网站对外数据 secure_link_module模块:对数据安全性提高,加密验证和失效性,适合核心 ...