美文网首页
Kotlin语言(四):函数

Kotlin语言(四):函数

作者: SupKing_a520 | 来源:发表于2022-01-13 15:41 被阅读0次

1、输入输出函数

fun main() {
    /**-------------------- 输出函数println() --------------------*/
    println("欢迎来到kotlin世界!")

    /**-------------------- 输入函数readLine() --------------------*/
    print("请输入第一个参数:")
    val a = readLine()?.toInt() ?: -1
    print("请输入第二个参数:")
    val b = readLine()?.toInt() ?: -1
    println("$a + $b = ${a + b}")
}

2、四种函数模型

/**
 * 1、无参无返回值函数(其返回值是Unit,可以不写)
 */
fun sayHello(): Unit {
    println("hello")
}

/**
 * 2、有参无返回值函数(其返回值是Unit,可以不写)
 */
fun sayHello(name: String) {
    println("Hello $name")
}

/**
 * 3、有参有返回值函数
 */
fun getHello(name: String): String {
    return "Hello $name"
}

/**
 * 4、无参有返回值函数
 */
fun getHello(): String {
    return "hello"
}

fun main() {
    sayHello()
    sayHello("Kotlin")
    println(getHello())
    println(getHello("Kotlin"))
}

3、顶层函数

//main函数也是顶层函数
fun main() {

}

//haha也是顶层函数
fun haha() {

}

4、嵌套函数

fun main() {
    //sayHello即为嵌套函数
    fun sayHello() {
        println("hello")
    }
    sayHello()
}

5、函数表达式

fun add(a: Int, b: Int): Int {
    return a + b
}

/**
 * 函数表达式:函数体只有一条语句的函数就是函数表达式
 *
 * (1)去掉{}和return,用=连接
 * (2)去掉返回类型
 */
fun add1(a: Int, b: Int) = a + b
fun sayHi() = println("Hi kotlin !")
fun max(a: Int, b: Int) = if (a > b) a else b

fun main() {
    println(add(1, 2))
    println(add1(10, 20))
    sayHi()
    println(max(5, 6))
}

6、函数引用

fun sub(a: Int, b: Int): Int {
    return if (a > b) a - b else b - a
}

fun main() {
    /**-------------------- ::函数名 --------------------*/
    //::sub:获取sub函数的引用,类似于c语言里的函数指针
    val pSub = ::sub

    /**-------------------- 使用 --------------------*/
    //(1)直接调用
    println(pSub(3, 5))
    //(2)通过invoke调用,这种方式的好处是可以使用空安全调用符 ?.
    println(pSub?.invoke(5, 3))

}

7、匿名函数

fun main() {
    /**
     * 匿名函数(Int, Int) -> Int:代表具有两个Int参数和返回值为Int类型的函数
     */
    val pFun: (Int, Int) -> Int = { a, b -> a + b }
    println(pFun(1, 2))
}

8、函数的默认参数

/**
 * 函数的默认参数
 * 1.method的默认值为GET
 * 2.如果调用的时候只传path,则会使用method默认值GET
 * 3.调用时仍然可以传递method来替换默认值
 *
 * 注:此处可以对比java里面的重载函数来理解,可以避免写很多重载函数。
 */
fun sendRequest(path: String, method: String = "GET") {
    println("path=$path method=$method")
}

fun main() {
    sendRequest("http://www.baidu.com")
    //此处使用默认的GET请求方式,结果为:path=http://www.baidu.com method=GET
    sendRequest("http://www.baidu.com", "POST")
    //此处使用指定的POST请求方式,结果为:path=http://www.baidu.com method=POST
}

9、函数具名参数

/**
 * 函数具名参数
 * 1.具名参数是指在调用时显示指定参数名字
 * 2.使用具名参数时可以不用管参数的顺序
 */
fun enqueueRequest(path: String, method: String = "GET", header: String = "UTF-8") {
    println("path=$path method=$method header=$header")
}

fun main() {
    enqueueRequest("http://www.baidu.com")
    //结果:path=http://www.baidu.com method=GET header=UTF-8

    /**-------------------- 使用具名参数调用函数 --------------------*/
    enqueueRequest(path = "http://www.baidu.com")
    //结果:path=http://www.baidu.com method=GET header=UTF-8
    enqueueRequest(path = "http://www.baidu.com", method = "POST")
    //结果:path=http://www.baidu.com method=POST header=UTF-8
    enqueueRequest(header = "GBK", method = "POST", path = "http://www.baidu.com")
    //结果:path=http://www.baidu.com method=POST header=GBK
}

10、函数可变参数

/**
 * 1.vararg关键字修饰参数即为可变参数
 * 2.其参数类型变成对应的数组类型
 *
 * 注:对比于java里面的:int... x
 * 求n个Int数据的和
 */
fun add(vararg x: Int): Int {
    //这里的x的数据类型为IntArray
    var result = 0
    x.forEach {
        result += it
    }
    return result
}


fun main() {
    val result = add(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    println("result=$result")
    //result=45
}

相关文章

  • Kotlin语言(四):函数

    1、输入输出函数 2、四种函数模型 3、顶层函数 4、嵌套函数 5、函数表达式 6、函数引用 7、匿名函数 8、函...

  • 函数和Lambda表达式(二)

    高阶函数 Kotlin不是纯粹的面向对象语言,Kotlin的函数也是一等公民,因此函数本身也具有自己的类型。 函数...

  • Kotlin反射

    Kotlin中KClass反射 Kotlin是函数式编程语言,它有一些独有的特性,例如,在Kotlin中的Prop...

  • Kotlin —— 扩展函数

    一、前言 Kotlin中的扩展函数特性让我们的代码变得更加简单和整洁。扩展函数是Kotlin语言中独有的新特性,利...

  • Kotlin从入门到放弃(四) 函数运用

    Kotlin从入门到放弃(四) 函数运用 本篇主要总结和分析Kotlin对函数提供的新功能,包括函数的基本定义、...

  • Kotlin 初识

    一 :什么是Kotlin Kotlin是一种开源的静态类型编程语言,支持面向对象和函数式编程。Kotlin提供了与...

  • Kotlin 函数式编程三板斧

    tags: kotlin, 函数式编程, map, filter, reduce 每个函数式语言都提供及几大类基本...

  • Kotlin基础语法

    认识kotlin: kotlin中函数的基本构成由四个部分组成:函数名称参数列表返回类型函数体函数的声明以关键字 ...

  • kotlin 引用fastjson 调用JSON.parseOb

    使用kotlin语言,引入fastjson库,调用JSON.parseObject()函数,结果报了"defaul...

  • 2021-11-30(Kotlin学习笔记)Kotlin 基础(

    kotlin java 隔离 kotlin 扩展函数 java 中调用扩展函数 高级函数

网友评论

      本文标题:Kotlin语言(四):函数

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