Scala--1

package scala02

object scala01_comment {

  def main(args: Array[String]): Unit = {
    //
    // 单行注释
    /*
    多行注释
     */
    /**
     * 文档注释
     */
    // 代码规范
    // 1.将代码格式化 ctrl +alt +l
    val a: Int = 10
    // 2.代码不要写过长

  }

}

 

package scala02

object scala_valANDVar {
  def main(args: Array[String]): Unit = {
    //    (1)声明变量时,类型可以省略,编译器自动推导,即类型推导。java的jdk1.8新特性
    val i = 20
    val i1: Int = 10
    // 类型推断只能针对特定的数据类型,数值类型只能针对 Int Long
    val byte: Byte = 100
    val i2 = 100
    val l = 1010L
    println(byte.getClass.getSimpleName)
    //    (2)类型确定后,就不能修改,说明 Scala 是强数据类型语言。
    var str: String = "hello"
    str = "ni hao "

    //    (3)变量声明时,必须要有初始值。
    val i3: Int = 11
    //    (4)在声明/定义一个变量时,可以使用 var 或者 val 来修饰,var 修饰的变量可改变,
    //    val 修饰的变量不可改。
    val i4: Int = 100
    //    i4 =300
    var i6: Int = 200
    i6 = 400
    //scala 中一般情况下 使用val修饰
    val i5 = 500
    //    (5)var 修饰的对象引用可以改变,val 修饰的对象则不可改变,但对象的状态(值)
    //    却是可以改变的。(比如:自定义对象、数组、集合等等)。
    val test01 = new Test02
    //    test01 =new Test02 error
    var test02 = new Test02
    test02 = new Test02
    //对象的状态(值)
    // TODO 对象的状态的(值)是否可变取决于对象内部属性自己的修饰符
  }

  //Scala 类中的属性 也是可以让系统给默认值
  //1.当前属性必须是var修饰的变量,并且要求使用等号链接
  //2 . 指定默认值必须使用一个特殊符号_
  class Test02 {
    var name: String = _
    var gge: Int = _
//    val name1: String = _
  }

}

 

package scala02

object scala03_Named {
  def main(args: Array[String]): Unit = {

    //TODO 如果使用运算符命名 必须和冒号隔开
    //TODO 关键字也可以命名
    // TODO 推荐使用驼峰命名

//输出
    //1 字符串通过+号链接
    val str:String="hello"+"aaa"
    println("hello"+"you")
    println(str)
    //重复字符串拼接
    println("hello" * 10)
//    printf 用法
    printf("%d 岁的 %s %s",10,"aag","10周年")
    val age:Int=100
    val name:String="sss"
    println(s"${age} ---$name")
//    原始字符串
    println(
      """
        |aaaa
        |aaaaaa
        |aaaaaaaa
        |aaaaaaaa
        |aaa
        |""".stripMargin)
//    拼接json
    val jsonStr:String="{\"key\":\"value\")"
    println(jsonStr)
    println(
      """
        |{"key":"value"}
        |""".stripMargin)
//    手写sql
    println(
      """
        |select
        | id ,
        |  name
        |  age
        |from
        |  user
        |where
        |  id ='1';
        |""".stripMargin)
  }

}

 

 

package scala02

import com.sun.xml.internal.bind.v2.TODO

object Scala04_base {
  def main(args: Array[String]): Unit = {
//    TODO:scalad代码本质所有代码都是程序化的,都是代码块(基于函数式编程)
//    当前代码块的最后一行会作为此代码快的返回值返回
    val unit:Unit={
    10+10
//  返回值类型就是 Unit
      println("我是代码块。。。")

    }
    val i: Int = {

      //  返回值类型就是 Unit
//      println("我是代码块。。。")
      10 + 10

    }
  }

}

 

package scala02

import java.awt.PrintGraphics

object Scala06_Type {
  //数据类型
  def main(args: Array[String]): Unit = {
    // 整数类型

    //声明时不能超出当前长度范围
    //    val b:Byte=128  error
    //特殊场景
    val b2: Byte = 126 + 1
    println(b2)
    val b3: Byte = 1
    //    val b4:Byte=(126+b3)
    //最常用的 Int Long
    //    val i1:Int=15000000000
    // 浮点型
    val d: Double = 3.6
    val f: Float = 3.5f
    //    浮点型计算会有精度损失
    val d1: Double = 0.1 / 0.3
    //    字符类型 长度65535
    //    val c:Char=65535
    val c1: Char = 'a'
    val c2: Char = 97
    val c3: Char = '\t'
    println(c3 + 0)
    val c4: Char = '\n'
    val c5: Char = '\\'
    println(c5 + 0)
    val c6: Char = '\"'
    println(c6 + 0)
    //    Boolean
    val bool: Boolean = true
    val bool: Boolean = false
    // Null (对javanull的补充)
    val str: String = null
    //    str.split( )
    if (str != null) {
      str.split("")
    }

    //    Unit 对java void 的补充
    //    在一些业务场景下 从代码块角度分析具体返回内容,从业务逻辑的角度分析 不需要任何返回值
    val unit: Unit = {
      10 + 10
      val unit: Unit = println("hellow scala")
    }
    println(unit)

  

  //  Nothing当前代码块或者函数不能正常返回内容 统一使用nothing来接受一般出现异常的情况会用
  val value: Nothing = {
    println("hello..")
    throw new RuntimeException
    
  }

}

}

你可能感兴趣的:(scala,开发语言)