隐式(implicit)是scala中最有特色也是最困难的一部分,可以说不掌握隐式就不能算是真正掌握了scala。隐式在许多著名的scala项目中有着广泛的应用,如Spark、GeoMesa等。本文就来详细介绍一下scala中隐式的使用。
scala中的隐式可以分为三部分内容:
- 隐式参数
- 隐式转换类型
- 隐式调用函数
1. 隐式参数
如果scala中的方法的参数使用implicit关键字标识,那么即使在调用方法并没有指定该参数,scala会寻找一个具有跟参数类型相同的变量,并将此变量作为参数传递给该方法,线面看一个实例: