scala变量和数据类型
发布日期:2021-05-10 03:44:33 浏览次数:21 分类:精选文章

本文共 1827 字,大约阅读时间需要 6 分钟。

Scala语言概述及相关知识

面向对象特性

  • 每个值都是对象: Scala强调一切都是对象,包括基础类型。
  • 基于类和特征的描述: 类定义对象的数据类型和行为,特征(Trait)提供混合式继承。
  • 支持函数式编程: Scala的函数式特性使其适合处理结构化数据和并发任务,每个函数都是一个值。高阶函数、柯里化、样例类(Case Class)和模式匹配是其核心功能。
  • 静态类型语言: scalar resembled Ot-Bootstrap时,数型安全是其强项,可通过静态类型检查消除潜在错误。
  • 高扩展性: 隐式类和字符串插值增强了代码的灵活性和可读性。

代码规范

  • 注释:与Java一致,简洁明了。
  • 编码习惯:使用Tab进行缩进,确保一行不超过80字符,需熟练掌握诸如Ctrl+Alt+L等格式化快捷键。
  • 语法要求:运算符两边会议议,注重代码的可读性。

变量与常量

  • 变量:可以被修改的值,使用var声明,例如:
    var a: Int = 10
  • 常量:值在执行过程中不变,使用val,如:
    val b: Int = 5
  • 选择使用:在可变性不影响性能或正确性的情况下,优先使用常量(val)以提高安全性。

Scala关键字

  • 包含控制结构、修饰符等常用词汇,需熟悉其语义和用法。

数据类型层次结构

  • Any:UMP类型,可作为所有类型的超类。
  • AnyVal:值的类型,可用于原始类型如Int、String等。
  • AnyRef:引用类型,对应Java的Object。
  • Unit:无值类型,用于无返回值操作。
  • Nothing:所有类型的下层类型,处理不可达成的情况。
  • Null:表示空引用,需谨慎使用。

字符串插值

  • s插值器:支持变量和表达式插入字符中,示例如:
    val name = "tom"
    println(s"hello, $name") // 输出: hello, tom
  • f插值器:强制格式化,用于特定格式需求,例如:
    val height = 1.9d
    val name = "tom"
    println(f"$name%s是$height%2.3f米") // 输出: tom是1.900米
  • raw插值器:保留原始格式,示例如:
    println(raw"a\nb")  // 输出: a\nb

流程控制

  • if-else:处理条件逻辑:
    val a = 10
    if (a > 5) {
    println("大于五")
    } else if (a ==5) {
    println("等于五")
    } else {
    println("小于五")
    }
  • 单行表达式:可省略花括号,终止表达式作为返回值:
    val b = if (a == 10) a + 1 else a
  • 代码块:可以用{}包裹,代码块返回值为最后一个表达式的结果:
    val x = 10
    val y = {
    println("代码块执行")
    x + 5
    }

循环控制

  • whiledo-while:用于基于条件的循环。
  • for循环:双闭区间to(包括右端点)和左闭右开until
    for (i <- 1 to 10) {
    println(i)
    }
    for (i <- 1 until 10) {
    println(i)
    }
  • break和return:使用Breaks控制台后可 Unsure la in循环中提前退出。
  • 中断控制:允许在循环中停止,提升性能和可维护性。
  • for的多条件和返回值:结合多个条件和yield,用于生成可迭代的集合。

数组、元组、集合

  • 数组
    // 创建方式
    val s1 = new Array[String](3)
    s1(0) = "wanqing"
    s1(1) = "zhaoqi"
    s1(2) = "wangcheng"
    val s2 = Array("aaa", "bbb", "ccc")
    val s3 = Array.range(1, 10, 2) // 1,3,5,7,9
  • 元组:多类型存储,下标访问:
    val tp1 = ("mike", 1, "zzzz")
    val name: String = tp1._1 // mike
  • 集合: 依赖库如scala.collection,用于高效存储和操作,常用集合包括Set、List、Map等。

通过实践以上知识,我能够逐步掌握Scala的核心要素,并结合实际项目,充分发挥其强大功能。

上一篇:scala函数、匿名函数、柯里化、隐式函数、隐式参数、隐式类
下一篇:scala安装、与java、jvm关系、源文件解析、伴生对象扩展说明

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年05月07日 10时54分51秒