package scala02object scala01_comment {def main(args: Array[String]): Unit = {//// 单行注释/*多行注释*//*** 文档注释*/// 代码规范// 1.将代码格式化 ctrl +alt +lval a: Int = 10// 2.代码不要写过长}}
package scala02object scala_valANDVar {def main(args: Array[String]): Unit = {// (1)声明变量时,类型可以省略,编译器自动推导,即类型推导。java的jdk1.8新特性val i = 20val i1: Int = 10// 类型推断只能针对特定的数据类型,数值类型只能针对 Int Longval byte: Byte = 100val i2 = 100val l = 1010Lprintln(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 =300var i6: Int = 200i6 = 400//scala 中一般情况下 使用val修饰val i5 = 500// (5)var 修饰的对象引用可以改变,val 修饰的对象则不可改变,但对象的状态(值)// 却是可以改变的。(比如:自定义对象、数组、集合等等)。val test01 = new Test02// test01 =new Test02 errorvar test02 = new Test02test02 = new Test02//对象的状态(值)// TODO 对象的状态的(值)是否可变取决于对象内部属性自己的修饰符}//Scala 类中的属性 也是可以让系统给默认值//1.当前属性必须是var修饰的变量,并且要求使用等号链接//2 . 指定默认值必须使用一个特殊符号_class Test02 {var name: String = _var gge: Int = _ // val name1: String = _}}
package scala02object 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=100val name:String="sss"println(s"${age} ---$name") // 原始字符串println("""|aaaa|aaaaaa|aaaaaaaa|aaaaaaaa|aaa|""".stripMargin) // 拼接jsonval jsonStr:String="{\"key\":\"value\")"println(jsonStr)println("""|{"key":"value"}|""".stripMargin) // 手写sqlprintln("""|select| id ,| name| age|from| user|where| id ='1';|""".stripMargin)}}
package scala02import com.sun.xml.internal.bind.v2.TODOobject Scala04_base {def main(args: Array[String]): Unit = { // TODO:scalad代码本质所有代码都是程序化的,都是代码块(基于函数式编程) // 当前代码块的最后一行会作为此代码快的返回值返回val unit:Unit={10+10 // 返回值类型就是 Unitprintln("我是代码块。。。")}val i: Int = {// 返回值类型就是 Unit // println("我是代码块。。。")10 + 10}}}
package scala02import java.awt.PrintGraphicsobject Scala06_Type {//数据类型def main(args: Array[String]): Unit = {// 整数类型//声明时不能超出当前长度范围// val b:Byte=128 error//特殊场景val b2: Byte = 126 + 1println(b2)val b3: Byte = 1// val b4:Byte=(126+b3)//最常用的 Int Long// val i1:Int=15000000000// 浮点型val d: Double = 3.6val f: Float = 3.5f// 浮点型计算会有精度损失val d1: Double = 0.1 / 0.3// 字符类型 长度65535// val c:Char=65535val c1: Char = 'a'val c2: Char = 97val c3: Char = '\t'println(c3 + 0)val c4: Char = '\n'val c5: Char = '\\'println(c5 + 0)val c6: Char = '\"'println(c6 + 0)// Booleanval bool: Boolean = trueval bool: Boolean = false// Null (对javanull的补充)val str: String = null// str.split( )if (str != null) {str.split("")}// Unit 对java void 的补充// 在一些业务场景下 从代码块角度分析具体返回内容,从业务逻辑的角度分析 不需要任何返回值val unit: Unit = {10 + 10val unit: Unit = println("hellow scala")}println(unit)// Nothing当前代码块或者函数不能正常返回内容 统一使用nothing来接受一般出现异常的情况会用val value: Nothing = {println("hello..")throw new RuntimeException}}}