Scala

隐士转换是Scala提供的一种语法糖

Implicit definitions are those that the compiler is allowed to insert into a program in order to fix any of its type errors.

Sacla隐士转换的规则

Marking rule: Only definitions marked implicit are available

Scope rule: An inserted implicit conversion must be in scope as a single identifier, or be associated with the source or target type of the conversion

One-at-a-time rule: Only one implicit is inserted

Explicits-first rule: Whenever code type checks as it is written, no implicits are attempted

隐士转换发生的场景

conversions to an expected type

conversions of the receiver of a selection

implicit parameters

原文地址:https://www.cnblogs.com/ayning/p/5756283.html