参数类型推断 | 学习笔记

简介: 快速学习参数类型推断

开发者学堂课程【Scala 核心编程 - 进阶参数类型推断学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9092


参数类型推断


内容介绍:

一、高阶函数案例的小结

二、课堂练习案例

三、参数(类型)推断的基本介绍

四、参数类型推断的写法说明

五、应用案例

六、应用案例小结


一、高阶函数案例的小结

>说明: def minusxy(x: Int)= (y: Int)=> ×-y

1)函数名为 minusxy

2)该函数返回一个匿名函数

(y: Int)= > x -y

≥说明val result3 = minusxy(3)(5)

1) minusxy(3)执行minusxy(x: Int)得到(y: Int)=> 3-y这个匿名函

2) minusxy(3)(5)执行(y: int)=> x- y这个匿名函数

3)也可以分步执行: val f1 = minusxy(3); val res = f1(90)


二、课堂练习案例

object Temp {

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

def test1(x: Double) = {

(y: Double) =>r* x* y //

}

val res = test1(2.0)(3.0)

println("res=" + res)//输出什么

}

}

Res=12.0


三、参数(类型)推断的基本介绍

参数推断省去类型信息(在某些情况下[需要有应用场景],参数类型是可以推断出来的,如 list=(1,2,3) list.map()map中函数参数类型是可以推断的),同时也可以进行相应的简写。


四、参数类型推断的写法说明

1)参数类型是可以推断时,可以省略参数类型

2)当传入的函数,只有单个参数时,可以省去括号

3)如果变量只在=>右边只出现一次,可以用_来代替


五、应用案例

//分别说明

val list = List(1,2,3,4)

println(list.map((x:lnt)=>x +1)//(2,3,4,5)

println(list.map((x)=>x + 1))

println(list.map(x=>x +1))

println(list.map(_ +1))

printLn( list.reduce(f1y)// 10

println(list.reduce((ni:Int ,h2:Int) ->n1 + n2)) / /10

printlnlist.reduce((ni ,n2)->n1 + n2)) / /10

printLn(list.reducei_ + _)  //10

val res = list.reduce(_+_)


六、应用案例小结

1) map 是一个高阶函数,因此也可以直接传入一个匿名函数,完成map

2)当遍历 list 时,参数类型是可以推断出来的,可以省略数据类型Int  println(list.map((x)=>x +1))

3)当传入的函数,只有单个参数时,可以省去括号 println(list.map(x=>x+1))

4)如果变量只在=>右边只出现一次,可以用_来代替 println(list.map(_ +1))

相关文章
|
2月前
|
Go
Go语言中的默认参数和可选参数详解
【2月更文挑战第22天】
122 2
|
26天前
|
C++
C++ 默认参数与引用传递:语法、用法及示例
C++ 允许函数参数具有默认值,简化调用。例如,`void myFunction(string country = "Norway")` 中`country`默认为"Norway"。默认参数仅适用于函数参数,不包括返回值。引用传递是另一种传递方式,函数直接访问变量内存,允许修改原值,提高效率。`void swapNums(int &x, int &y)` 中`x`和`y`为引用参数。了解这些特性可提升代码可读性和性能。
45 0
|
2月前
|
JavaScript 安全
TypeScript 中的高级类型转换技术:映射类型、条件类型和类型推断
TypeScript 中的高级类型转换技术:映射类型、条件类型和类型推断
|
9月前
|
Java 编译器 Kotlin
Kotlin 中变量,类型,表达式,函数详解
Kotlin 中变量,类型,表达式,函数详解
69 0
|
7月前
|
测试技术 Python
软件测试|Python函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用
软件测试|Python函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用
60 0
|
9月前
|
JavaScript
TypeScript 函数的详细使用(默认参数、可选参数、剩余参数、重载声明)
TypeScript 函数的详细使用(默认参数、可选参数、剩余参数、重载声明)
100 0
函数高级 — 默认参数、占位参数、函数重载
函数高级 — 默认参数、占位参数、函数重载
107 0
函数高级 — 默认参数、占位参数、函数重载
|
PHP 开发者
强类型返回值|学习笔记
快速学习强类型返回值
80 0
强类型返回值|学习笔记
|
Python
Python学习:定义函数的默认参数和可变参数
定义函数的默认参数和可变参数
85 0
typescript15-(同时指定参数和返回值类型)
typescript15-(同时指定参数和返回值类型)
64 0
typescript15-(同时指定参数和返回值类型)