diff --git a/src/senior/Lambda/Senior.kt b/src/senior/Lambda/Senior.kt index 2204bcb..605726c 100644 --- a/src/senior/Lambda/Senior.kt +++ b/src/senior/Lambda/Senior.kt @@ -1,21 +1,5 @@ package senior.Lambda; -fun main(args: Array) { - var range = 1..100 - println("被5整除的") - println(range.pickNum { x: Int -> x % 5 == 0 }) - println("被10整除的") - println(range.pickNum({ x: Int -> x % 10 == 0 })) - println(range.pickNum { x: Int -> x % 10 == 0 }) - println("被15整除的") - println(range.pickNum { it % 15 == 0 }) - println("移除指定数字") - println(range.removeNum(20,{x: Int -> x % 10 == 0})) - println(range.removeNum(50) { x: Int -> x % 10 == 0 }) - - println(range.removeNum(40) { it % 10 == 0 }) -} - fun IntRange.pickNum(function: (Int) -> Boolean): List { val list: MutableList = mutableListOf() for (i in this) { @@ -38,3 +22,35 @@ fun IntRange.removeNum(removeNumm: Int, func: (Int) -> Boolean): List { } return list } + +fun main(args: Array) { + var range = 1..100 + println("被5整除的") + println(range.pickNum { x: Int -> x % 5 == 0 }) + println("被10整除的") + println(range.pickNum({ x: Int -> x % 10 == 0 })) + println(range.pickNum { x: Int -> x % 10 == 0 }) + println("被15整除的") + println(range.pickNum { it % 15 == 0 }) + println("移除指定数字") + println(range.removeNum(20, { x: Int -> x % 10 == 0 })) + println(range.removeNum(50) { x: Int -> x % 10 == 0 }) + + println(range.removeNum(40) { it % 10 == 0 }) + + println("svip price = " + getPrice(UserType.SVIP)(20.0)) + println("normal price = " + getPrice(UserType.NORMAL)(20.0)) +} + + +/** + * 返回值类型为函数 + */ + +fun getPrice(type: UserType): (Double) -> Double { + if (type == UserType.NORMAL) { + return { it } + } else { + return { price -> price * 0.8 } + } +} \ No newline at end of file diff --git a/src/senior/Lambda/UserType.kt b/src/senior/Lambda/UserType.kt new file mode 100644 index 0000000..72ff90a --- /dev/null +++ b/src/senior/Lambda/UserType.kt @@ -0,0 +1,13 @@ +package senior.Lambda + +/** + * todo Created with IntelliJ IDEA + * + * + * @author luming + * @email: lu.lm@bitsun-inc.com + * @date 2021/7/1 11:41 + */ +enum class UserType { + NORMAL,SVIP +} \ No newline at end of file