Scala:
官网:https://www.scala-lang.org/
scala是纯面向对象的函数式编程语言,scala 中的基本数据类型 也是对象(类似java中的基本数据类型的包装类)
特点:
1. 无缝与java集成,运行在jvm中
2. 类型推断 ,弱类型引用,根据上下文可以推断声明的变量的类型
3. 并发和分发,体现在对集合的操作(Actor)
4. 特质,特征,性状,将Java风格的界面的灵活性与类的强大功能相结合。考虑有原则的多重继承。(面向接口编程,类似java中的接口和抽象类) 关键字 trait
5. 模式匹配;
6. 高阶函数
安装使用:
1. 直接官网下载环境包,配置环境变量 和java 一样
环境要求 jdk8 以上,jdk8有时候也会出现问题,当报错的时候 要么升级jdk,要么降低scala版本
例如报错,当时也是使用的jdk8 ,但是还是不适用,最后重新下载个低版本的scala解决
2. 使用IDE, 官网下载集成了scala的eclipse; 或者使用idea 下载插件
语法模块
数据类型
1. 基本数据类型: Byte,Short,Int,Long, Float,Double,Char,Boolean
2. 字符串类型:String
3. Unit: 表示无值,类似void
4. Null
5. Nothing : 所有其他类型的子类型,表示没有值
6. Any : 所有类型的超类,任何实例都属于Any类型
7. AnyRef : 所有引用类型的超类
8. AnyVal : 所有值类型的超类
类型定义
var 定义变量 var v = 10; 等同 var v:Int = 10
val 定义不可变的变量,val v = 10
代码示例:scala中的helloWord
// 声明一个scala object object TestScalaObject { // scala中的main方法, object中才能使用main方法 def main(args: Array[String]): Unit = { // 声明变量 scala中语句后可以不带分号 ; var v1 = 10 val v2 = 12 // 不可变的变量,重新复制报错 print(v1 + v2) // 输出22 } }
scala 中的类和对象
scala中的类和对象能同名,同名的类和对象 分别叫做伴生类 和伴生对象,并且伴生对象能访问伴生类的私有属性;
object中的属性默认是val 的不可变的,声明成var 的也是静态的,默认 方法也是静态的;
Scala中的类
// 声明一个scala类 ,属性必须有默认值,没有默认值需要将他设置为抽象类 // TestScalaClass(name: String,age: Int) 默认构造器 // 声明其他的构造器的时候必须调用默认构造器 class TestScalaClass(name: String,age: Int) { var namex = name ; val agex = age; var gender = ""; // 三个参数的构造器 def this(name: String,age: Int,g: String) { this(name,age) this.gender = g } // 无参构造器 def this(){ // 必须调用 类上声明的 构造器 this("",0) }
scala中的循环和判断语句
def main(args: Array[String]): Unit = { // 1. 使用 to 包头包尾 for(i<- 1 to 10) { println(i) // 1-10 } // 2. 使用 until for(i <- 1 until 10) { print(i) // 1-9 } // 3. 加入判断 for(i <- 1 to 10 ;if(i%2 ==0 && i >5 || i==2)){ print(i) } // 4. if else,while ,do... while 和java一致 // 5. scala中不能使用 ++ 例如 count++