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