文章目录
前言
scala在一种简洁的高级语言中结合了面向对象和函数式编程。Scala的静态类型有助于避免复杂应用程序中的错误,它的JVM和JavaScript运行时使您可以构建高性能系统,并轻松访问庞大的库生态系统。
几大特性
- Scala运行在JVM上,因此Java和Scala实现完全无缝集成。
- 类型推理。
- 并发与分布式。
- 将java风格接口的灵活性与类的强大功能结合起来。
- 模式匹配
- 高阶函数
- 非常适合初学者和高级软件开发。
1.环境搭建
环境搭建很简单,现在都是在IDEA中集成插件,添加SDK即可快速开发。
1) IDEA中插件下载
file-->settings-->plugins,搜索scala下载安装即可,安装好需要重启IDEA
2) SDK下载配置
file–>ProjectStructure–>global libraries–>点击添加–选择Scala SDK
下载完成之后即可。new Class
就可以打印hello world了
object TestScala {
def main(args: Array[String]): Unit = {
println("hello scala")
}
}
// hello scala
2.基本使用
1)var与val的区别
val和var的区别在于val使变量不可变——就像Java中的final——而var使变量可变
.
2) .基本数据类型
val b: Byte = 1
val x: Int = 1
val l: Long = 1
val s: Short = 1
val d: Double = 2.0
val f: Float = 3.0
val c:Char='A'
var str:String="ACSDFS"
3).字符串的基本用法
object TestString {
def main(args: Array[String]): Unit = {
val str1="hello"
var str2="world"
//拼接字符串
//第一种拼接
println(str1+" "+str2)
println("--------第二种拼接--------")
println(s"$str1 $str2")
}
}
4) 控制结构
1) if else
def main(args: Array[String]): Unit = {
val a=3
if (a < 0 ) {
println(s"$a < 0")
} else if ( a == 0) {
println(s"$a = 0")
} else {
println(s"$a > 0")
}
}
2) for 循环
val nums = Seq(1,2,3)
println("------for循环-----------")
for (n <- nums) println(n)
println("------foreach-----------")
nums.foreach(println)
3) while循环
def main(args: Array[String]): Unit = {
var a = 0
while(a < 10){
println(a)
//a++ 没有java中的这种写法
a+=1
}
}
5)类
// the primary constructor
class Pizza (var crustSize: Int, var crustType: String) {
//一个参数构造
def this(crustSize: Int) = {
this(crustSize, DefaultCrustType)
}
// 一个参数构造器
def this(crustType: String) = {
this(DefaultCrustSize, crustType)
}
// 无参构造器
def this() = {
this(DefaultCrustSize, DefaultCrustType)
}
def printPizzaInfo(): Unit ={
println(s"pizza $DefaultCrustSize $DefaultCrustType")
}
}
6) 函数
def main(args: Array[String]): Unit = {
println("-----无参函数----")
printMsg()
println("-----参数函数----")
println(add(1,2))
println("-----参数函数----")
println(sum(1,2,3))
def printMsg(): Unit ={
println("function print")
}
def add(a:Int,b:Int): Int ={
return a+b
}
//可变参数
def sum(args: Int*) = {
var result = 0
for(arg <- args) result += arg
result
}
}
}
其他的语法下篇讲解