函数定义
函数最后一行的的返回值就是函数的返回值
scala> :paste
// Entering paste mode (ctrl-D to finish)
def hello(name:String,age:Int)={
println(" hello "+name+" your age is "+age)
"hello "+name
}
println(hello("catlina",100))
// Exiting paste mode, now interpreting.
hello catlina your age is 100
hello catlina
hello: (name: String, age: Int)String
----------------------------------
不谢后面的 = 是没有返回值的
scala> :paste
// Entering paste mode (ctrl-D to finish)
def hello2(name:String,age:Int) {
println(" hello "+name+" your age is "+age)
"hello "+name
}
println(hello2("catlina2",100))
// Exiting paste mode, now interpreting.
hello catlina2 your age is 100
()
hello2: (name: String, age: Int)Unit
----------------------------------
单行函数 可以没有花括号
scala> def haha(name:String)=print("haha "+name)
haha: (name: String)Unit
scala> haha("kafka")
haha kafka
----------------------------------
默认参数
scala> :paste
// Entering paste mode (ctrl-D to finish)
def helloFunc(name:String,age:Int = 20) = {
println(" hello "+name+" your age is "+age)
}
helloFunc("java")
// Exiting paste mode, now interpreting.
hello java your age is 20
helloFunc: (name: String, age: Int)Unit
----------------------------------
命名参数 可以不按照定义顺序传参
scala> helloFunc(age=100 ,name="hadoop")
hello hadoop your age is 100
----------------------------------
可变参数 -使用*
scala> def sum(num : Int*)={ var ret =0 ; for(x<- num){ ret= ret+ x} ;ret}
sum: (num: Int*)Int
scala> sum(1,2,3,4,5,6,7,8,9,10)
res38: Int = 55
----------------------------------
要传递序列 注意语法
scala> sum(1 to 10 :_*)
res39: Int = 55
----------------------------------
相关推荐
### Scala学习笔记(全) #### 一、Scala概述与特点 Scala是一种多范式的编程语言,旨在集成面向对象编程和函数式编程的各种特性。它运行于Java平台(Java虚拟机JVM),并且能够完全兼容所有的Java程序。这使得Scala...
3. 函数式编程:Scala也是一门函数式语言,函数是第一类公民,可以作为参数传递,也可以作为返回值。它支持高阶函数、闭包、柯里化(Currying)和尾递归优化等特性。 4. 并发编程:Scala提供了Actor模型,这是一种...
在"scala学习笔记整理"中,我们可以深入探讨以下关键知识点: 1. **基础语法**:Scala的基础语法与Java有相似之处,但也有很多独特的特点。例如,它支持变量的不可变性(immutability),使用`val`声明常量,`var`...
scala 入门进阶、常用类库学习 项目结构 模块说明 模块 说明 目的 完成 语言核心特性、特性深度分析示例、常用函数 入门 √ 练习题-std-lib 巩固基础 √ 练习题-Scala函数式编程 函数式编程思想进阶 × scala-谜题 ...
### Scala学习笔记关键知识点 ...以上内容涵盖了Scala学习笔记中的关键知识点,从并发编程到函数式编程的核心概念,再到Scala语言本身的一些特殊规则和特点,这些都是学习Scala时需要掌握的基础知识。
在"scala-study"这个文件夹中,可能包含的子文件有练习代码、笔记、教程文档等,这些都是学习过程中的宝贵资料。通过这些资源,初学者可以逐步了解如何使用Scala编写Spark程序,包括如何创建SparkSession、加载数据...
在这里,你会学习到Scala的安装与环境配置,理解Scala的基本语法,包括变量声明、数据类型(如基本类型、引用类型和集合类型)、控制结构(如条件语句和循环)以及函数定义和调用。此外,还会介绍Scala中的模式匹配...
读书笔记:scala的纯函数式编程数据结构学习
- **函数式编程**:Scala同时也是一个成熟的函数式编程语言,支持高阶函数、模式匹配等功能。 - **类型推断**:Scala具有强大的类型推断机制,这使得开发者可以在很多情况下省略类型声明。 - **模式匹配**:提供了一...
Scala是一种强大的、现代的编程语言,它融合了面向对象编程(OOP)和函数式编程(FP)的特性,为开发者提供了丰富的表达能力和高效的代码执行环境。作为Java平台上的一个成员,Scala程序可以在Java虚拟机(JVM)上...
-Scala学习注意事项 主要档案 适用于实用程序的Scala脚本 -Scala spark基本演示 Scala基本-变量,数据结构 -Scala基本数据结构: array, list, tuple ,应用function, lambda带有它们的function, lambda基本。 和...
### Scala的操作笔记 #### 一、课程目标与学习路径 本课程旨在通过三个阶段的目标来逐步深入学习Scala语言,最终能够灵活运用Scala进行Spark程序的开发,并具备阅读Spark内核源码的能力。 - **初级目标**:掌握...
读书笔记:基于scala语法学习函数式编程方法
读书笔记:《scala函数式编程》书本学习代码
3. **函数式测试**:Scala的函数式特性使得测试可以更加纯粹,避免副作用,从而提高测试的确定性和可预测性。书中可能会讲解如何利用函数式编程思想进行测试。 4. **Mocking和隔离**:在测试中,mocking是模拟依赖...
以上内容覆盖了 Scala 编程语言的核心知识点,从基本语法到高级特性,为初学者提供了一个全面的学习指南。Scala 是一门功能强大且灵活的语言,适合于构建大型的、复杂的软件系统。希望这些知识点能够帮助读者更好地...
读书笔记:scala函数编程
本教程“scala-learn:scala学习笔记”旨在帮助初学者深入理解Scala的基础知识,同时也为有经验的程序员提供了一个复习和提升的平台。 1. **基础语法与数据类型** Scala的基础语法简洁而强大,包括变量声明(val和...
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于...
Scala学习资源Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为: 不太久...