美文网首页
如何提高kotlin代码质量

如何提高kotlin代码质量

作者: Snail127 | 来源:发表于2018-08-28 12:02 被阅读0次
                                  编程是一门艺术,程序员是艺术家,其他人是码农!

1.Kotlin的隐藏开销

伴生对象
伴生对象通过在类中使用companion object来创建,用来替代静态成员,类似于Java中的静态内部类。所以在伴生对象中声明常量是很常见的做法,但如果写法不对,可能就会产生额外开销。

2. For循环

Kotlin提供了downTostepuntilreversed等函数来帮助开发者更简单的使用For循环,如果单一的使用这些函数确实是方便简洁又高效,但要是将其中两个结合呢?比如下面这样:

fun show(){
    val i: Int = 10
    for (a in 100 downTo 10 step 10)
      println(i)
  }

转换后的Java代码

public void show() {
      int i = 10;
      IntProgression var10000 = RangesKt.step(RangesKt.downTo(100, 10), 10);
      int a = var10000.getFirst();
      int var3 = var10000.getLast();
      int var4 = var10000.getStep();
      if (var4 > 0) {
         if (a > var3) {
            return;
         }
      } else if (a < var3) {
         return;
      }
      while(true) {
         System.out.println(i);
         if (a == var3) {
            return;
         }
         a += var4;
      }
   }

重点看这行代码:
IntProgression var10000 = RangesKt.step(RangesKt.downTo(10, 1), 2);
这行代码就创建了两个IntProgression临时对象,增加了额外的开销。

3.基本类型数组

在Kotlin中有3种数组类型:
IntArrayFloatArray,其他:基本类型数组,被编译成int[]float[],其他
Array<T>:非空对象数组
Array<T?>:可空对象数组
//kotlin 创建数组

val a =intArrayOf(1)
val b =arrayOf(1)
val c =arrayOf(null)

等价java创建数组

@NotNull
private final int [] a =int[]{1}
@NotNull
private final Integer [] b=new Integer[]{Integer.valueOf(1)}
@NotNull
private final Integer [] b=new Integer[]{(Integer)null}

后面两种方法都对基本类型做了装箱处理,产生了额外的开销。
所以当需要声明非空的基本类型数组时,应该使用xxxArray,避免自动装箱。

?.?:

      list.get(1).account
      println("-----------------------")
      list.add(User().also { it.mobile = "1111111" })
      //abc?.let   abc不为空调用,为空跳过
      list.get(3).account?.let {
        println(it)
      }
      list.get(3).mobile?.let {
        println(it)
      }
      //?: 前面不为空返回前面的值否则返回后面的值
      UserVo(id = user.id ?: 0, account = user.account ?: "")

未完待续 - - -

参考链接:https://tech.meituan.com/Kotlin_code_inspect.html

相关文章

  • 如何提高kotlin代码质量

    1.Kotlin的隐藏开销 伴生对象伴生对象通过在类中使用companion object来创建,用来替代静态成员...

  • 如何提高代码质量?

    我们都知道 简单即是美 . 人亦如此 , 代码亦如此 . 好吧 , 我们恢复正题 , 啥代码 质量高 . 首先我...

  • Android 如何提高代码质量?

    避免创建不必要的对象,尽可能避免频繁的创建临时对象,例如在for循环内,减少GC的次数。 尽量使用基本数据类型代替...

  • 如何提高团队代码质量

    在 Wikipedia 上,对代码审查的定义是 代码审查(英语:Code Review)是指对计算机源代码系统化地...

  • 如何提高安卓代码质量

    Why 代码也是一种产品,没人希望使用劣质产品。高质量的代码,正确,高效,清晰,可靠。作为码农,我们的工作应该不仅...

  • 如何提高看代码的质量

    要读懂一个项目的代码,首先得明白该项目是做什么的?需要实现怎样的功能?接下来便是如何有效的实现这些功能?最...

  • 如何提高 TypeScript 的代码质量?

    Typescript 是 Microsoft 开发的一种编程语言,旨在为 Javascript 语言带来严格的类型...

  • 提高代码质量方法之单元测试

    代码质量的重要性不言而喻,直接影响了项目质量和团队开发效率,对于如何提高代码的质量,除了依赖开发人员本身的技术素质...

  • 25持续集成

    Devops提高产品质量自动化测试,持续集成,代码质量管理工具 如何实现devops设计架构规划--代码的存储-构...

  • 【点评】前端项目如何用eslint提高代码质量

    前端项目如何用eslint提高代码质量?https://www.jianshu.com/p/4294e5832cf...

网友评论

      本文标题:如何提高kotlin代码质量

      本文链接:https://www.haomeiwen.com/subject/tnefwftx.html