快速入门 Kotlin 的扩展函数

本文同步发表于我的微信公众号,在微信搜索 不要注水 即可关注。

今天一起来学习下 Kotlin 扩展函数,话不多说直接上代码。

首先定义一个扩展函数,功能是将 String 转成 Int 值,代码如下。

fun String?.toIntOrZero(): Int {
    if (this.isNullOrEmpty()) {
        return 0
    }
    try {
        return this.toInt()
    } catch (e: NumberFormatException) {
        e.printStackTrace()
    }
    return 0
}

这里的方法名就表面了我们的这个函数是扩展到 String? 类型上的,在方法体内就可以使用 this 指向具体的调用的对象。

来看看使用效果吧

val s = ""
Log.d("k", "" + s.toIntOrZero()) // 0

可以看到,使用很简单,直接在 String 类型的对象上调用这个方法就可以了,非常方便。

那么我们来看看 kotlin 是怎么帮我们实现这个功能的吧,首先查看第一个方法编译成 java 的版本,如下。

public final class StringExtKt {
   public static final int toIntOrZero(@Nullable String $this$toIntOrZero) {
      CharSequence var1 = (CharSequence)$this$toIntOrZero;
      boolean var2 = false;
      boolean var3 = false;
      if (var1 == null || var1.length() == 0) {
         return 0;
      } else {
         try {
            var2 = false;
            return Integer.parseInt($this$toIntOrZero);
         } catch (NumberFormatException var4) {
            var4.printStackTrace();
            return 0;
         }
      }
   }
}

可以看到 kotlin 帮我们实现了一个静态方法,在调用的地方也是同样的道理,kotlin 帮我们做了一些改变。

      String s = "";
      Log.d("k", "" + StringExtKt.toIntOrZero(s));

Kotlin 将我们的写法转换成了调用上面的静态方法,不用我们手动去写过多的代码,不得不说在某些场景下还是很方便的。好了,今天的分享就到这里了。

PS.写完已经是晚上11点50了,只好赶快发布,如有什么差错,大家多多包涵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值