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

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

开发者学堂课程【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)

}

}

相关文章
|
监控 NoSQL Java
后端接口性能优化分析-问题发现&问题定义(下)
后端接口性能优化分析-问题发现&问题定义
349 0
|
分布式计算 大数据 Apache
【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)
【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)
767 0
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
XML 前端开发 JavaScript
Nginx 安装配置
10月更文挑战第5天
246 4
Nginx 安装配置
|
API
如何在公众号里制作微信报名表
微信万能表单不仅可以制作各种报名单,也可以用作问卷调查,商品发布,登记汇总等,可以根据自己需求,来添加组件,比如姓名、手机号、性别、报名的时间、报名的图片等,因为微信报名表涉及的用途比较广泛,所以很多商家在做微信公众号报名表的时候,针对性不会太强,没有什么局限性,应用还是起来比较方便的
616 12
|
存储 网络协议 定位技术
OSPF路由汇总:优化网络的强大工具
OSPF路由汇总:优化网络的强大工具
502 1
|
JavaScript 前端开发 API
Vue3 中 setup 语法糖做了哪些骚操作?
Vue3 中 setup 语法糖做了哪些骚操作?
龙蜥和麒麟的异同
有没有大佬能简要说明一下两个操作系统的异同
|
JavaScript IDE 测试技术
Rtsp转Flv在浏览器中播放
【2月更文挑战第5天】本文简单介绍如何间接实现在浏览器中播放rtsp的流,涉及技术点和工具较多,本文仅做功能实现思路的梳理和简单的代码实践,后续整理更深入的实现原理。
1376 1
|
存储 Go 开发工具
go语言后端开发学习(二)——基于七牛云实现的资源上传模块
go语言后端开发学习(二)——基于七牛云实现的资源上传模块
248 0