scala(一)
来源:互联网 发布:python 内容管理系统 编辑:程序博客网 时间:2024/05/19 12:39
综述
学习scala:静态语言,jvm
- 面向对象和函数式编程相结合
- 代码简洁效率高(数量级),java相比之下太复杂
- scala是基于java的,可以无缝调用java代码中的方法/库等
- 有助于理解spark的核心,一些scala有的spark接口,java中不一定有
命令式编程:通过输入的语句执行命令,有复杂度的概念,复杂度主要取决于行数等。告诉机器干啥,每一步如何干。一步一步执行。
函数式编程:没有可变的状态,所有的都是不可变的。多核下更能发挥速度优势,更强的并发。值告诉程序在哪里做。
下载,配置scala路径
scala_home:scala目录的路径
path: %SCALA_HOME%\bin;%SCALA_HOME%\jre\bin;ClassPath: .;%SCALA_HOME%\bin;%SCALA_HOME%\lib\dt.jar;%SCALA_HOME%\lib\tools.jar.;scala -version 查看scala是否安装成功
基本语法
声明 类型 /值
val 定义常量 定义完常量以后,值不能修改
var 定义变量 定义完之后,值可以修改
一个变量在定义的时候必须被初始化,scala中尽可能的使用不可变变量。
var age1 = 100val age2 = 100//报错age2++ // 显示的指定变量的类型val sex:char='m'val grrade:String="five"
函数
定义 指明变量名,类型。参数名在前,参数类型在后。与java相反(区别)
scala中函数是非常灵活的,可以直接赋值给变量
def add(m:Int,n:Int) = m+n
// 调用没有参数的函数的时候,可以不写def fun(val:type){xxxx}匿名函数val add = (x: Int, y: Int) => x * yprintln(add(12,12))
数据类型
和java中的类似,但是功能更强大。方法更多,toString,toDouble等
整型值 Int Long Short Byte
浮点型 Float Double
布尔型 Boolean
字符型 Char String Char
字符串:s.substring(a) 返回的是s从a位置后的所有的字符内容。
var a = 058 数字0代表这是个八进制数
控制结构
for:每次枚举后都会抛弃上一个i,可以实现大部分的循环体功能。
yield保留关键字。对枚举体内的数值,全都保留在yield内。
for ( i<- seq){println i} val c = for (i<- seq) yield iprint c // 输出的结果是 Vector(10, 11, 12)
if:判断
// 用if实现赋值。def fun(x:Int,y:Int) = if(语句)val b = if(a>0) 1 else -1
for 和if配合能试下很多功能
for ( i <- seq if fun(i) ) xx else y
match:类似switchcase
num match{case value1 => operation1case value2 => operation2case value3 => operation3case_=> default operation}
idea中运行一个scala
1 下载idea的scala插件
2 创建scala项目
3 在项目下创建两个目录
src下创建mian和test目录main目录下:java scala resource目录。把main和scala目录的性质不能设置成sources性质test目录下:java scala resource目录。
0 0
- scala学习(一)
- Scala 学习心得(一)
- scala初探(一)
- Scala练习(一)
- Scala基本概念(一)
- SCALA随笔(一)
- Scala(一)
- scala笔记(一)
- Scala总结(一)
- scala 初探(一)
- scala学习(一)
- scala(一)
- Scala学习(一)
- Scala(一)
- Scala Trait(一)
- scala(一)
- Scala教程(一)走进Scala世界
- Scala教程(一)走进Scala世界
- C# udp小程序
- RecycleView简单实现滑动删除Item
- 特征值和特征向量(二)
- 栈及其实现
- 数据结构与算法
- scala(一)
- 【Unified Auditing】统一审计的存储(12.2)
- 欢迎使用CSDN-markdown编辑器
- LeetCode 98. Validate Binary Search Tree Add to List
- Android使用Retrofit请求WebService
- 二叉树遍历:已知前序中序输出后序/已知后序中序输出前序
- python基础学习(二):数据类型
- 哈希hash
- POJ 2485(建高速公路__最小生成树)