Kotlin扩展函数实现原理

package study.yang.carditemdemo.capture

fun String.contact(str: String): String {
          
   

    return this.plus(str)
}


fun main(){
          
   
    println("====".contact("哈哈喜欢"))
}
package study.yang.carditemdemo.capture;

import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import org.jetbrains.annotations.NotNull;

@Metadata(
   mv = {
          
   1, 1, 15},
   bv = {
          
   1, 0, 3},
   k = 2,
   d1 = {
          
   "u0000u0010
u0000
u0002u0010u0002
u0000
u0002u0010u000e
u0002u0002u001au0006u0010u0000u001au00020u0001u001au0012u0010u0002u001au00020u0003*u00020u00032u0006u0010u0004u001au00020u0003¨u0006u0005"},
   d2 = {
          
   "main", "", "contact", "", "str", "app_debug"}
)
public final class StringKt {
          
   
	//通过创建静态函数的方式实现的
   @NotNull
   public static final String contact(@NotNull String $this$contact, @NotNull String str) {
          
   
      Intrinsics.checkParameterIsNotNull($this$contact, "$this$contact");
      Intrinsics.checkParameterIsNotNull(str, "str");
      return $this$contact + str;
   }

   public static final void main() {
          
   
      String var0 = contact("====", "哈哈喜欢");
      boolean var1 = false;
      System.out.println(var0);
   }

   // $FF: synthetic method
   public static void main(String[] var0) {
          
   
      main();
   }
}
经验分享 程序员 微信小程序 职场和发展