隐式函数使用注意事项|学习笔记

简介: 快速学习隐式函数使用注意事项。

开发者学堂课程【Scala 核心编程-基础:隐式函数使用注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。

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


隐式函数使用注意事项

 

隐式转换的注意事项和细节

1、隐式转换函数的函数名可以是任意的,隐式转换与函数名称无关,只与函数签名(函数参数类型和返回值类型)有关。

implicit def f1(d:Double): Int {

这里写了f1,Double但是在编译器中它只看 Double IntF1写成 f2,d 写成 d1,都没关系只跟函数签名有关

2、隐式函数可以有多个(即:隐式函数列表),但是需要保证在当前环境下,只有一个隐式函数能被识别即匹配就是不能有重复的

如果要转换再写一个函数隐式函数可以写多个必须要有一个匹配多了也会报错

//在当前环境中,不能存在满足条件的多个隐式函数

implicit def f2(f:Float): Int={

f.toint

}

//这里我们必须保证隐式函数的匹配只能是唯一的

//implicit def f3(f:Float): Int={  报错的原因不是因为参数名参数名更换也会报错因为在编译器中它会很迷茫它不是找一个就进行匹配而是把一个文件当作整体进行编译

//f.toint

//}

Val num : Int 3.5//底层编译 f1$1(3.5)

Val num2 : Int 4.5f  f 是 Double 类型的跟 d:Double 并不匹配提示转换不了

println("num ="+ num)

}

}

相关文章
|
5天前
|
存储 SQL 人工智能
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)(下)
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)
|
5天前
|
存储 SQL 关系型数据库
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)(上)
01-PostgreSQL 存储过程的基本介绍以及入门(基本结构、声明和赋值、控制结构)
|
前端开发
前端学习案例3-this指向问题-隐式调用规则
前端学习案例3-this指向问题-隐式调用规则
54 0
前端学习案例3-this指向问题-隐式调用规则
|
前端开发
前端学习案例4-this指向问题-隐式调用规则2
前端学习案例4-this指向问题-隐式调用规则2
57 0
前端学习案例4-this指向问题-隐式调用规则2
|
人工智能 编译器 C语言
如何使用函数及函数的注意事项
目录 什么是函数? 如何调用函数? 函数的先后关系? 函数的变量空间? 什么是函数? 首先我们来说一说函数的作用,就是一块简单的代码接受零个或多个参数,做一件事情,并返回零个或一个值 void sum(int a,int b) { int i; int sum=0; for(i=a:i<=b;i++) { sum+=i; } printf("%d到%d的和是%d\n",a,b,sum); } 现在我们就写出了一个简单的求和函数和数学中的y=f(x)很像 函数名 sum 返回类型 void 参数表 int a,int b 函数体 大括号里的所有东西 函数头 大括号前
|
编译器 Scala 开发者
隐式值详解|学习笔记
快速学习隐式值详解。
105 0
|
关系型数据库 MySQL 编译器
隐式类详解|学习笔记
快速学习隐式类详解。
62 0
|
Java Scala 开发者
属性的注意事项|学习笔记
快速学习属性的注意事项。
64 0
属性的注意事项|学习笔记
|
Java 数据安全/隐私保护 开发者
函数的注意事项| 学习笔记
快速学习函数的注意事项
116 0
|
网络协议 编译器 测试技术
方法和函数区别说明|学习笔记
快速学习方法和函数区别说明
113 0