💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
**隐式函数:** 也称隐式转换,使用`implicit`修饰。它使用的两种场景是类型转换和类型增强。 ```scala // Double类型转换为Int类型 implicit def doubleToInt(x:Double) = x.toInt // 检测到3.5是Double类型,自动调用doubleToInt函数转换为Int类型 val a:Int = 3.5 // 3 // 类型增强 implicit def boolToInt(x:Boolean) = if (x) 1 else 0 println(1 + true) // 2 // 1. 如果不提供 doubleToInt 函数,则 val a:Int = 3.5 由于类型不匹配是会报错的; // 2. 如果不提供 boolToInt 函数,则 1 + true 计算是报错的; ``` <br/> **隐式转换的发生时机:** * 当方法中的参数的类型与目标类型不一致时; * 当对象调用类中不存在的方法或成员时,编译器会自动将对象进行隐式转换;