首页 > 其他分享 >Kotlin Notes - 3

Kotlin Notes - 3

时间:2023-11-19 22:55:18浏览次数:31  
标签:... false Int Kotlin Notes default fun foo

  1. Function parameters can have default values, which are used when you skip the corresponding argument. This reduces the number of overloads:

    fun read(
        b: ByteArray,
        off: Int = 0,
        len: Int = b.size,
    ) { /*...*/ }
    
  2. If the last argument after default parameters is a lambda, you can pass it either as a named argument or outside the parentheses:

    fun foo(
        bar: Int = 0,
        baz: Int = 1,
        qux: () -> Unit,
    ) { /*...*/ }
    foo(1) { println("hello") }     // Uses the default value baz = 1
    foo(qux = { println("hello") }) // Uses both default values bar = 0 and baz = 1
    foo { println("hello") }        // Uses both default values bar = 0 and baz = 1
    
  3. You can name one or more of a function's arguments when calling it. This can be helpful when a function has many arguments and it's difficult to associate a value with an argument, especially if it's a boolean or null value.

    fun reformat(
        str: String,
        normalizeCase: Boolean = true,
        upperCaseFirstLetter: Boolean = true,
        divideByCamelHumps: Boolean = false,
        wordSeparator: Char = ' ',
    ) { /*...*/ }
    reformat(
        "String!",
        false,
        upperCaseFirstLetter = false,
        divideByCamelHumps = true,
        '_'
    )
    reformat(
        "String!",
        false,
        upperCaseFirstLetter = false,
        divideByCamelHumps = true,
        '_'
    )
    
  4. You can pass a variable number of arguments (vararg) with names using the spread operator:

    fun foo(vararg strings: String) { /*...*/ }
    foo(strings = *arrayOf("a", "b", "c"))
    
  5. When the function body consists of a single expression, the curly braces can be omitted and the body specified after an = symbol:

    fun double(x: Int): Int = x * 2
    
  6. Functions marked with the infix keyword can also be called using the infix notation (omitting the dot and the parentheses for the call).

    infix fun Int.shl(x: Int): Int { ... }
    
    // calling the function using the infix notation
    1 shl 2
    
    // is the same as
    1.shl(2)
    

标签:...,false,Int,Kotlin,Notes,default,fun,foo
From: https://www.cnblogs.com/otf-notes/p/17842918.html

相关文章

  • 运用Kotlin开发Android应用的一些技巧
    今天的这篇文章带你学习使用Kotlin开发Android应用,并对比我们传统语言Java,让你真真切切的感受到他的美和优雅。配置项目gradle文件applyplugin:'com.android.application'applyplugin:'kotlin-android'applyplugin:'kotlin-android-extensions'dependencies{clas......
  • kotlin协程:一文搞懂各种概念
    前言使用kotlin协程已经几年了,可以说它极大地简化了多线程问题的复杂度,非常值得学习和掌握。此文介绍并梳理协程的相关概念:suspend、non-blocking、Scope、Job、CoroutineContext、Dispatchers和结构化并发。进入协程世界简而言之,协程是可以在其内部进行挂起操作的实例,是否支持......
  • Kotlin Notes - 2
    PropertiesinKotlinclassescanbedeclaredeitherasmutable,usingthevarkeyword,orasread-only,usingthevalkeyword.//fullsyntaxfordeclaringapropertyvar<propertyName>[:<PropertyType>][=<property_initializer>]......
  • kotlin 泛型基础
    一、泛型函数如下是泛型函数的一种构造在fun函数标记的右边增加该函数要使用的类型形参fun<T>List<T>.slice(indices:IntArray):List<T>{valret=mutableListOf<T>()for(vinindices){ret.add(this[v])}returnret}listOf(3,4,5,6......
  • Kotlin委托的深入解析与实践
    引言在Kotlin编程语言中,委托是一项强大的特性,它能够极大地简化代码,提高代码的可维护性。本文将深入探讨Kotlin中的委托机制,介绍其原理、具体使用方式以及实际应用场景。委托的原理委托是一种通过将实际工作委托给其他对象来实现代码重用的机制。在Kotlin中,委托通过关键字by来实现......
  • Kotlin Notes - 1
    AclassinKotlinhasaprimaryconstructorandpossiblyoneormoresecondaryconstructors.//primaryconstructorclassPerson(valname:String){valchildren:MutableList<Person>=mutableListOf()//secondaryconstructorconstru......
  • kotlin 内联函数 inline
    一、当函数被声明为内联函数(函数的前缀增加inline),那么函数体会被直接替换到函数被声明的地方,而不是被正常的调用。如下的代码inlinefunsynchronized(lock:Lock,action:()->Unit){lock.lock()try{returnaction()}finally{lock.unlo......
  • kotlin 高阶函数
    一、定义:以另一个函数作为参数或者返回值的函数1、kotlin中,函数以lambda或者函数引用来表示 二、函数类型1、如下是函数的类型上述声明了函数的类型,括号内包含了该函数类型需要传入的参数类型,紧接着箭头,最后是返回的类型(在声明函数类型时候,返回类型即使是Unit也不可以省略)......
  • 一文快速实战Kotlin协程与Flow
    前言不知道大家有没有跟我一样的感受:即使自己用心在网上学过协程和Flow了,但过了一段时间就又忘掉了。这大部分的原因其实是因为我们缺少实战。我平时工作里根本就接触不到协程和Flow,自己又不敢硬往上写,万一出问题了咋整?所以一直就处于理论学习阶段,导致我学了就跟没学一样。今天就带......
  • 知乎问题采集如此轻松,Kotlin来帮忙
    知乎是国内最好的一个知识学习的平台,我们平时很多问题都能在知乎上找到很好的答案。那么今天我就用Kotlin编写一段知乎问题收集的程序,我们可以根据自己需要的问题,进行针对性的采集,非常的不错,一起来看看吧。```kotlinimportokhttp3.OkHttpClientimportokhttp3.Requestimportja......