package com.init.demo.test fun main(args: Array<String>) { /** * lambda 全程lambda表達式 沒有函數名的函數 即匿名函數 * 即函數中的函數(內部函數),基於數學中的λ演算得名 * 也可以乘稱作閉包 是指這個匿名函數內可以引用創建 * 這個匿名函數所屬的變量 * 寫法:{參數1,參數2,...參數n -> //執行語句} */ println(add(1,3)) println("add()改寫成lambda表達式爲: var add = {x:Int,y:Int ->x+y}") var add = {x:Int,y:Int ->x+y} /** * 從而把函數變成了一個變量,這個變量的類型稱作函數類型 * lambda表達式中不允許出現return */ println(add) //methodLambda使用方法 var methodLambda = comboTwoValue(1,3,add) println(methodLambda) /** * comboTwoValue1()函數體現了沒有了以前的add函數名,變量名也沒了 */ var methodLambda1 = comboTwoValue1(1,{x:Int,y:Int ->x+y},3) println(methodLambda1) } fun add(x:Int,y:Int):Int{ return x+y } /** * 用來組合兩個整數,得出一個結果 * 計算兩個整數的步驟,交給第三個函數參數類型去解決 * method:(a:Int,b:Int)->Int是一個函數類型 * ->是一個函數類型定義 */ fun comboTwoValue(x:Int,y:Int,method:(a:Int,b:Int)->Int):Int{ return method(x,y) } fun comboTwoValue1(x:Int,method:(a:Int,b:Int)->Int,y:Int):Int{ return method(x,y) } //輸出: 4 add()改寫成lambda表達式爲: var add = {x:Int,y:Int ->x+y} (kotlin.Int, kotlin.Int) -> kotlin.Int 4 4
Kotlin-Lambda 表達式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.