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 = {"\u0000\u0010\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0002\u001a\u0006\u0010\u0000\u001a\u00020\u0001\u001a\u0012\u0010\u0002\u001a\u00020\u0003*\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u0003¨\u0006\u0005"},
   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();
   }
}

你可能感兴趣的:(Kotlin,kotlin,java,android)