Scala -- 初识scala

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++

猜你喜欢

转载自blog.csdn.net/xiaodujava/article/details/88945496