内联类使用关键字 value 和 @JvmInline 注解声明,它只能有一个属性而且不能有 init 代码块和幕后字段
内联类有点像 Java 中的包装类型,Integer, Boolean 等等,而在使用内联类时,除非绝
对必要,否则类本身的信息不会在字节码中使用,而是将属性数据内联到类的使用处,可以
大大减少运行时的空间开销
在生成的代码中,Kotlin 编译器为每个内联类保留一个包装器。内联类的实例可以在运行
时表示为包装器或者基础类型,为了生成性能最优的代码,编译器更倾向于使用基础类型。
比如:
但如果将内联类用作其他类型时,其类型信息是必须的,所以会被装箱。比如: