美文网首页
Kotlin之方法

Kotlin之方法

作者: xu_pan | 来源:发表于2020-09-21 20:45 被阅读0次
fun main(): Unit {
    sayHello("Kotlin")
    Person().sayHello("Kotlin")
    Person.sayHello2("Kotlin")
    PersonUtils.sayHello("Kotlin")
    sayHelloSingle("Kotlin")
    println(append('a', 'b', 'c'))
    println("magic():${magic()}")
    test5()
    test6()
}

fun sayHello(name: String): String {
    println("Hello $name!")
    return name
}

class Person {
    //成员方法
    fun sayHello(name: String) {
        println("Hello $name From Person")
    }

    //伴随对象中的方法可以直接调用
    companion object {
        fun sayHello2(name: String) {
            println("Hello $name From Person companion object")
        }
    }
}

//类似于Java中的静态方法
object PersonUtils {
    fun sayHello(name: String) {
        println("Hello $name! from PersonUtils")
    }
}

/**
 *单表达式方法,当方法仅有单个表达式时,可以省略花括号,并在 = 后指定方法体即可
 */
fun sayHelloSingle(name: String) = println("Hello $name From 单表达式")

/**
 *默认值,方法参数可以有默认值,当省略相应参数时使用默认值。与Java相比,可以减少重载数量
 */
fun read(b: Array<Byte>, off: Int = 0, len: Int = b.size) {

}

/**
 * 可变数量参数
 */
fun append(vararg str: Char): String {
    val result = StringBuffer();
    str.forEach {
        result.append(it)
    }
    return result.toString()
}

/**
 *局部方法 闭包?
 */
fun magic(): Int {
    fun foo(x: Int): Int {
        return x * x
    }

    var m = (1..100).random();
    return foo(m)
}

/**
 * 无参数方法改写为lambda表达式
 */
fun test() {
    println("无参数方法")
}

val test1 = { print("无参数方法") }

/**
 *有参数有返回方法改写为lambda表达式
 */
fun test2(a: Int, b: Int): Int {
    return a + b
}

val test3: (Int, Int) -> Int = { a, b -> a + b }
//可以简化为
val test4 = { a: Int, b: Int -> a + b }

//认识it
fun test5(){
    var array = arrayOf(1,2,3,4,5)
    println(array.filter { it < 3 })
}

/**
 *认识下划线
 *使用lambda表达式的时候,可以用下划线(_)表示未使用的参数,表示不处理这个参数
*/
fun test6(){
    var map = mutableMapOf<String,String>("a" to "abc","b" to "bcd")
    map.forEach { (t, u) -> println(u) }
    //用下划线代替不需要的部分
    map.forEach { (_, u) -> println(u) }
}

输出

Hello Kotlin!
Hello Kotlin From Person
Hello Kotlin From Person companion object
Hello Kotlin! from PersonUtils
Hello Kotlin From 单表达式
abc
magic():36
[1, 2]
abc
bcd
abc
bcd

相关文章

  • Kotlin学习之定义函数

    Kotlin学习之定义函数 @(Kotlin学习) 一、定义函数 Kotlin中的函数比Java中的方法更灵活,用...

  • Kotlin之方法

    输出

  • Kotlin之美——DSL篇

    Kotlin 系列:Kotlin之美——高效篇Kotlin之美——DSL篇 Kotlin DSL 把 Kotlin...

  • kotlin class constructor的使用

    6 kotlin之class kotlin的class比Java更简洁面料采用,使用更方便,类似于方法直接写上参数...

  • kotlin学习笔记

    kotlin方法命名 java的main方法 kotlin的main方法 kotlin循环 打印结果2020-08...

  • Kotlin之美——高效篇

    Kotlin 系列:Kotlin之美——高效篇Kotlin之美——DSL篇 Kotlin 作为后起之秀,站在巨人们...

  • kotlin入门潜修系列教程

    kotlin入门潜修之开门篇—kotlin是什么? kotlin入门潜修之基础篇—基础语法kotlin入门潜修之基...

  • Kotlin学习之Kotlin初识

    Kotlin学习之Kotlin初识 @(Kotlin学习) 一、什么是Kotlin? Kotlin,是JetBra...

  • Kotlin学习目录

    Kotlin学习目录 一、Kotlin学习之函数和变量二、Kotlin学习之类和属性三、Kotlin学习之枚举和W...

  • kotlin之扩展方法

    个人博客:haichenyi.com。感谢关注   kotlin的扩展方法类似于java工具类,但是又优于java...

网友评论

      本文标题:Kotlin之方法

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