函数基本介绍和快速入门|学习笔记

简介: 快速学习函数基本介绍和快速入门。

开发者学堂课程【Scala 核心编程-基础函数基本介绍和快速入门】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8929


函数基本介绍和快速入门

 

一、函数基本语法

二、快速入门案例

 

一、函数基本语法

这节课进行讲解 Scala 函数的基本定义语法,在上面已经提出了需求,对语言函数的基本语法下面总结了八句话:

基本语法:

def 函数名([参数名:参数类型], [:返回值类型] =]{

语句....

return 返回值

}

de f是关键字,然后是函数名后面跟的参数名和参数类型,形参可以是多个,注意函数返回值是有冒号和返回值类型的,而用中括号括起来的可以写,也可以不写,然后函数中式语句 return 返回值。

1)函数声明关键字为 def (definition)

2) [参数名:参数类型...表示函数的输入(就是参数列表),可以没有。如果有,多个参数使用逗号间隔

3)函数中的语句:表示为了实现某功能代码块

4)函数可以有返回值,也可以没有

5)返回值形式1: 返回值类型=,就是有一个返回值具体类型是什么。

6)返回值形式2: 就是把[:返回值类型]拿掉只写一个返回值,表示返回值类型不确定,使用类型推导完成

7)返回值形式3:就是把[:返回值类型] =]全部拿掉表示没有返回值,return 不生效,冒号与返回值是一个整体,与返回值类型一起出现。

8)如果没有 return,默认以执行到最后一行的结果作为返回值

下面开始快速的对上面提出的问题进行解决。

 

二、快速入门案例

下面进行完成这样一个需求:

输入两个数,再输入一个运算符(+,-),得到结果:

代码实现

新建包 com.atguigu.temp,fun,再新建一个案例 FunDemo01文件,如下首先定义一个函数,当这里没有去使用的话也是一个方法,就是当没有用的时候函数和方法是可以等同的,根据使用的形式去决定怎么称呼。

因为这里要求的是结果,所以使用函数 getRes,然后传入两个参数 n1,n2,有一个操作符写为 char,而返回值类型肯定是有一个结果的,所以目前采用返回值形式1,返回值类型为 int 类型加上 int 类型,还是为 int。函数写完后进行判断,如果 oper 等于+,则进行 n1+n2的计算,这里的 return 可以写,也可以不写,不写的话,默认就是这个结果。如果 oper 等于-的话,就进行 n1-n2,此时会出现报错,因为如果 oper 不等于加号或者减号,则没有返回值。所以要再加一个逻辑,如果 oper 传入的不是加号或者减号就代表传入有问题,就返回 null,然后定义变量 n1=10,n2=20,然后输出进行调用的结果。此时执行的话会出现报错,原因返回值为空不能与 int 数据类型进行匹配,而上面讲过这种写法,要求返回值类型必须都是 int,而这种写法只是返回值形式的其中一种,所以这里可以使用返回值类型2,只写一个等号。所以为了不报错可以直接把:int 拿掉,只写一个等号。下面运行代码进行查看:

package com. atguigu. chaptero5. fun

object FunDemo01 {

def main(args: Array[string]): Unit ={

valn1=10

valn2=20

println("res=”+ getRes(1, 2, '-'))

}

//定义函数/方法

def getRes(n1: Int, n2: Int, oper: char) = {

if (oper == '+') {

n1 + n2 //返回

} else if (oper == '-') {

n1-n2

} else {

//返回null

null

}

运行结果:

D: \program\jdk8\bin \java

res=- 1

甚至输入一个错误的运算符也能正常返回一个 null 值,如:

valn1=10

valn2=20

println("res=”+ getRes(1, 2, ')'))

运行结果:

D: \program\jdk8\bin \java

res=null

所以这里只需要进行类型推导就可以判断返回值。到此就把基本语法学习完了,后面就是讲解该技术的使用细节和陷阱讲解。以上进行讲解了函数的必要性和进行讲解函数定义基本的语法和快速入门,因为没有函数代码冗余,不利于代码的维护,所以提出了把功能放在一起进行管理,函数最早出现的原因也是如此,

相关文章
|
缓存 前端开发 Java
综合性练习(后端代码练习1)——加法计算器
综合性练习(后端代码练习1)——加法计算器
140 1
|
数据安全/隐私保护 Windows 存储
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1122 152
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1793 9
|
10天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
719 152