[笔记迁移][Spark开发语言][Scala][5]函数与异常

本文深入解析Scala编程语言的特性,涵盖函数定义规范、过程、递归函数、参数处理及异常管理。探讨Scala如何融合面向过程与面向对象编程,强调其灵活的函数定义方式和独特的懒加载机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scala与 C++ 一样,既面向过程(独立存在的函数),又面向对象(类,域,方法)

  1. Scala函数定义
    (1) 定义范式

    	def functionName(arg1Name : arg1Type, arg2Name : arg2Type) = {/*Function Body*/}
    

    [1] 定义时,与Python一样,必须由def开头

    [2] Scala函数要求必须明确指定所有参数的类型,没有参数时可以省略参数列表定界的括号()。

    [3] Scala不必指定函数返回值的类型,只要右侧的函数体中不包含递归的语句, Scala可以根据右侧的表达式自动推断出返回类型。

    [4] 块表达式返回(代码块中最后一行的返回值就是整个函数的返回值),没有显示return
    Example

    (2) 函数签名
    Signature

    (3) 递归函数必须声明返回类型,如Fibonacci

    def Fibonacci(n : Integer) : Int = {/*...*/}
    

    (4) 若函数体只有单行语句甚至可以不需要函数体定界括号{}

    (5) 默认参数值
    [1]指定方式与C++相同,参数列表中赋值。

    [2]调用时,以"参数名=参数值"的形式即可不按声明时顺序设置参数。

    [3]可以混合使用顺序参数和指定参数,但顺序参数必须对应最左边。

    (6) 变长参数
    [1] argName argType*
    [2] 若用一个已有的序列直接作为“变长参数函数”的参数,mismatch!此时需要使用Scala的特殊语法将参数整体拆分为单元素序列
    VariableArgs

    (7) 过程
    定义函数时,如果函数体直接包裹在花括号里面,而没有使用 “=” 连接,则函数的返回值类型Unit(默认) 或 显式地将返回值类型定义为Unit(此时必须写 “=”),这种函数即过程

  2. Lazy值:懒加载
    若将一个变量声明为lazy,则只有在第一次使用该变量时,才会计算对应地表达式。主要用于耗时操作如IO
    Lazy

  3. Scala异常,只有catch子句与Java不一致
    TryCatchClause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值