1.plugin中安装scala插件

2.项目设置

  1. project structure

  2. Global Libraies --> + --> Download 2.11.xx版本

  3. 右键、Copy to Project Libraies

  4. Libraies目录中会出现

3.创建基本项目

  • scala -> IDEA

 

 

基础知识

  1. object和classs区别

    • object相当于java中的静态

    • main方法要运行只能写到object中

  2. 输出语句print既可以写方法内,也可以写方法外

  3. $a可以取变量值

    • $a 3

    • ${a+4} 7

  4. 运行顺序

    package com.xiaoke.scala
    object TestScalaObject04 {
      private val xo:TestScalaObject05 = new TestScalaObject05()
      println ("ooxx>>>>>>>up")
      def main(args: Array[String]): Unit = {
        println("hello from TestScalaObject04... ")
        xo.printMsg()
      }
      println("ooxx     。。。。 down.......")
    }
    
    class TestScalaObject05 {
      var a:Int = 3;
      println(s"aa ...... up ....$a....")
      def printMsg(): Unit= {
        println("hello from msg")
      }
      println(s"aa ...... down${a+4}")
    }
    
    运行结果:
    aa ...... up ....3....
    aa ...... down7
    ooxx>>>>>>>up
    ooxx     。。。。 down.......
    hello from TestScalaObject04... 
    hello from msg
    
    运行顺序:
    方法外的常量都是静态,类似静态
    

      

  5. 类型
    Byte    8位有符号补码整数。数值区间为 -128 到 127
    Short    16位有符号补码整数。数值区间为 -32768 到 32767
    Int    32位有符号补码整数。数值区间为 -2147483648 到 2147483647
    Long    64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
    Float    32 位, IEEE 754 标准的单精度浮点数
    Double    64 位 IEEE 754 标准的双精度浮点数
    Char    16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF
    String    字符序列
    Boolean    true或false
    Unit    表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
    Null    null 或空引用
    Nothing    Nothing类型在Scala的类层级的最底端;它是任何其他类型的子类型。
    Any    Any是所有其他类的超类
    AnyRef    AnyRef类是Scala里所有引用类(reference class)的基类

     

  6. var和val
    1. var是变量
    2. val是常量,类似java中final
  7. 重写构造方法必须重写原来的构造
      var address = "xiaoke"
      def this(xaddress: String){
        this()
        address = xaddress
      }

     

  8. 修改常量
    1. 类名构造器中的参数就是类的成员属性,且默认是val类型,且默认是private

       

       


    2. 只有在类名构造中的参数可以设置成var,其他地方函数中的参数都是val类型的,且不允许设置成var类型

       

       

  9. 类名调用的是常量
    class ooxx(){
      val name = "wang";
      def message(): Unit ={
        println(s"a---- ${ooxx.name}")
      }
    }
    
    object ooxx{
      val name = "ke";
      val ox:ooxx = new ooxx();
      def main(args: Array[String]): Unit = {
        ox.message()
      }
    }
    
    结果: a---- ke

     

为什么学scala?

有同学问:
学习scala就是为了多学一门语言吧?感觉不如python,不仅学习了语言,也学了工具,理解有哪些偏差?

编译型  C <  贼快
解释型  python  < 贼慢

Java: 其实不值钱,最值钱的是JVM

JAVA:  既是解释型、又是编译型, 所以比python快
java为什么值钱? 是C写的, 【字节码(二进制) > JVM(堆/堆外(二进制)) < kernel(mmap,sendfile)】  更快!

 

posted on 2021-01-31 12:18  陕西小楞娃  阅读(73)  评论(0编辑  收藏  举报