当前位置: 首页 > article >正文

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
    
  }

}

}

http://www.kler.cn/a/156429.html

相关文章:

  • 以往运维岗本人面试真题分享
  • react 中 FC 模块作用
  • 腾讯云nginx SSL证书配置
  • Toeplitz矩阵循环矩阵
  • PYNQ 框架 - 中断(INTR)驱动
  • SCUI Admin + Laravel 整合
  • vue.draggable拖拽——岗位切换如何判断?
  • Kubernetes(K8s)_15_CNI
  • linux 内核对象介绍
  • Python的模块与库,及if __name__ == ‘__main__语句【侯小啾python领航班系列(二十四)】
  • SimCSE论文阅读
  • 2023年年末Java面试题
  • Spring Task 定时任务框架
  • read()之后操作系统都干了什么
  • 自动驾驶学习笔记(十四)——感知算法
  • Ai2 Starter模拟器:中文绿色最新版下载及使用方法
  • Pytorch进阶教学——训练一个图像分类模型(GPU)
  • 【开源】基于Vue.js的假日旅社管理系统
  • Python词频统计(数据整理)
  • 【开源】基于JAVA语言的APK检测管理系统
  • 2024年甘肃省职业院校技能大赛(中职教师组)网络安全竞赛样题卷④
  • h5进行svga动画礼物特效播放的代码实现队列按顺序播放
  • 终端安全管理软件是监控软件吗
  • Cesium 展示——新增需求和分析
  • 2023年关于爬取Bilibili(B站)视频的一些最新资源和案例
  • Synchronized关键字的底层原理