Scala的6大特征:
- 与JAVA无缝整合
- 类型可以自己推断
- 异步处理
- Scala的接口中可以定义方法
- 模式匹配
- 高阶函数
入门代码练习:
package com.test
import java.util
import scala.collection.mutable.ArrayBuffer
/**
* Created by lenovo on 2019/1/18.
* Scala入门
*/
object Sacla_Test {
def main(args: Array[String]): Unit = {
// val age = 27 //常量 immutable class(在java中的不可变类) final(在java中的常量定义)
// var age =22 //变量
// age =23
// println(age)
// val name: String = "yasaka"
// var n: Any = "yasaka"//Any是超类 再次赋值的时候类型可以是Any类下的任何类型
// n = 123
// val a,b,c:String = null
// val v,n,m =1
// println(n)
// println(1 to 10) //Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
// println("hellow" intersect "world")//交集 隐式转换StringOps
// count += 1 //在scala中没有 count++ 这一说
// import scala.math._
//"_"指的是某某某仓库下的所有类
// println(sqrt(2)) //求2的平方根
// println(pow(2,4))//求某个数的n次方
// println(min(100, Pi)) //求最小值
// val list = List(1, 2, 3, 5, 6, 6, 7, 5)
// println(list.distinct) //输出集合中的数据 并去重
//apply 函数!!!
// println("come on baby"(5))
// println("come on baby".apply(5))//取字符串中的某个值
//条件控制 if else
// val age = 30
// println(if (age > 18) 1 else 0)
// val a = if (age >18) 1 else 0
// println(a)
// val a = if (age > 30) "超过30岁" //else 不谢 返回的是:Unit类型
// println(a)
// var a,b,v = 1
// println(if(1<2){a=a+1;b=a+2;v=b+2; v}) //结果为 6 最后一个代码块作为返回值 函数不能作为返回值
//输入与输出
// println("hello")
// print("hello")
// var a = readLine("请输入:") //录入
// println(a)
/*
1. 过时方法
val line = Console.readLine()
2. 目前使用方法
val br = new BufferedReader(new InputStreamReader(System.in));
val line = br.readLine()
.. 注意关闭流
*/
// var a = 10
// while (a > 0){
// println(a)
// a-=1
// }
// for (i <- "qawd;asjfolihedohjazpoJvfcopdrfjv") {
// println(i)
// }
// import scala.util.control.Breaks._
// breakable{
// var a = 10
// for(i <- "i love you"){
// if (a == 7)break();
// println(i)
// a -= 1
// }
// }
// for (i <- 1 to 20 if i % 2 ==0; if i % 5 >3){println(i)}
// println(for (i <- 1 to 10 ) yield i) //yield 把结果放在一个集合里面输出(项链)
//数组操作
// 数据 放在 数据结构 再来写算法
// Array ArrayList <==> Array ArrayBuffer
// val a = new Array[Int](10)
// println(a(0))
// val a = new Array[String](10)
// a(0) = "yubaby"
// println(a(0))
// val a = Array("wo ai ni")
// a(0) = "yubaby"
// println(a(0))
// val a = Array("wo ai ni","wo shi ni")
// println(a.length)
// a(0) = "yubaby"
// println(a(1))
// println(a(0))
import scala.collection.mutable.ArrayBuffer
// val a = ArrayBuffer[Int]()
// a += 1
// a += (1,2,3,4)
// a ++= Array(1,2,3)
// a.trimEnd(2)
// println(a) //ArrayBuffer(1, 1, 2, 3, 4, 1)
//
// a.insert(1,2) //指定位置插入XX
// a.remove(1,2) //删除 几到几
// println(a)
// val a = Array("a","b","c")
// val b = ArrayBuffer("aa","bb","cc")
// println(a.toString)
// println(b.toArray)
//
// for (i <- 0 until b.length){
// println(b(i))
// }
val a = Array(4,5,2,1,3)
// println(a.sum)
// println(a.max)
// scala.util.Sorting.quickSort(a)
// for (i <- 0 until a.length){
// println(a(i))
// }
//mkSring 一般用于Array
// println(a.mkString)
// println(a.mkString(","))
//toString 一般用于 ArrayBuffer
val buffer = ArrayBuffer[Int]()
buffer ++= Array(1,2,3)
println(buffer.toString())
println(buffer.mkString)
}
}