当前位置:网站首页>[kotlin learning] control flow of higher-order functions -- lambda return statements and anonymous functions
[kotlin learning] control flow of higher-order functions -- lambda return statements and anonymous functions
2022-07-03 09:22:00 【Android old monkey】
Control flow of higher-order function
lambda The return statement in : Returns... From a closed function
Use... In a normal loop return
Pass on to forEach Of lambda Use in return
If you are in the lambda
Use in return
keyword , He will From call lambda In a function that returns , Not just from lambda return . In this way return The statement is called Nonlocal return , Because it starts from a Ratio inclusion return A code block of returns... In a larger code block 了 . We can compare in java Medium for Circulation and synchronized Code block , Obviously, it will return... From the function
it is to be noted that Only in order to lambda Only when the function as a parameter is an inline function can it return from the outer function . Upper figure forEach Function body and lambda The function bodies of are inlined together , So when compiling, it is easy to return from the function containing it . In a non inline function lambda Use in return It's not allowed . A non inline function can pass to it lambda Save in variable , So that you can continue to use... After the function returns
from lambda return : Use the tag to return
Can be in lambda Use local returns in expressions ,lambda The local return in is followed by for In the loop break The expression is similar . It will end lambda Implementation , And then call lambda Execute at the code of . Distinguish Partial return and Nonlocal return , Labels need to be used . From a lambda The expression returns, and you can mark it , And then in return The key word quote This tag
To mark a lambda expression , stay lambda Put a before the curly braces label name , Then put one @
Symbol . From one lambda return , stay return Put a... After the keyword @ Symbol , Add your signature
The other is to use lambda The function name of the function as a parameter can be used as a label , such as forEach
If you explicitly specify lambda The label of the expression , Reuse as a label has no effect , One lambda The number of labels in an expression cannot be more than one
Tagged this expression
If you bring the recipient lambda Specify the label , You can use the corresponding labeled this
An expression accesses its implicit recipient
Anonymous functions : The default is to use local return
Anonymous functions look similar to normal functions
Anonymous functions and ordinary functions have the same rules for specifying the return value type , Code block Anonymous functions require Explicitly specify the return type , If you use Expression function body Can Omit Return type
Anonymous function using expression function body
In anonymous functions , Without a label return Expressions are returned from anonymous functions , Instead of returning... From a function that contains an anonymous function .
The rules :return From recent use fun
The function declared by the keyword returns .lambda Not used fun keyword , therefore lambda Medium return Returns... From the outermost function , Anonymous functions use fun. Although anonymous functions look very similar to ordinary functions , But it's actually lambda Just another grammatical form of expression
At the end of the article
I have summed up some Android Core knowledge points , And some of the latest big factory interview questions 、 Knowledge brain map and video data analysis .
Needed Small partners directly click on the small card at the end of the text to receive it for free Oh , I hope we can go down together in the future .( Thank you for your support , You need to get it yourself )
Android Study PDF+ Architecture video + Interview document + Source notes
List of partial data :
- 330 page PDF Android Learning core notes ( contains 8 Large plate )
- Android The learning system corresponds to the video
- Android Advanced systems correspond to learning materials
- Android BAT Interview questions of Dachang ( With resolution )
Receiving address :
边栏推荐
- Crawler career from scratch (I): crawl the photos of my little sister ① (the website has been disabled)
- Solve POM in idea Comment top line problem in XML file
- [point cloud processing paper crazy reading classic version 10] - pointcnn: revolution on x-transformed points
- Move anaconda, pycharm and jupyter notebook to mobile hard disk
- 【点云处理之论文狂读经典版13】—— Adaptive Graph Convolutional Neural Networks
- [point cloud processing paper crazy reading classic version 9] - pointwise revolutionary neural networks
- Hudi 快速体验使用(含操作详细步骤及截图)
- [point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis
- Recommend a low code open source project of yyds
- 【点云处理之论文狂读经典版10】—— PointCNN: Convolution On X-Transformed Points
猜你喜欢
LeetCode 508. 出现次数最多的子树元素和
AcWing 785. 快速排序(模板)
[point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis
Jenkins learning (III) -- setting scheduled tasks
[point cloud processing paper crazy reading classic version 14] - dynamic graph CNN for learning on point clouds
Sword finger offer II 091 Paint the house
[point cloud processing paper crazy reading frontier version 10] - mvtn: multi view transformation network for 3D shape recognition
Install third-party libraries such as Jieba under Anaconda pytorch
[point cloud processing paper crazy reading classic version 7] - dynamic edge conditioned filters in revolutionary neural networks on Graphs
【点云处理之论文狂读经典版13】—— Adaptive Graph Convolutional Neural Networks
随机推荐
Navicat, MySQL export Er graph, er graph
【Kotlin学习】类、对象和接口——带非默认构造方法或属性的类、数据类和类委托、object关键字
Basic knowledge of network security
Matlab dichotomy to find the optimal solution
C language programming specification
Internet Protocol learning record
LeetCode 515. Find the maximum value in each tree row
LeetCode 75. Color classification
【Kotlin学习】运算符重载及其他约定——重载算术运算符、比较运算符、集合与区间的约定
Linxu learning (4) -- Yum and apt commands
精彩回顾|I/O Extended 2022 活动干货分享
Pic16f648a-e/ss PIC16 8-bit microcontroller, 7KB (4kx14)
[kotlin learning] classes, objects and interfaces - define class inheritance structure
[point cloud processing paper crazy reading classic version 7] - dynamic edge conditioned filters in revolutionary neural networks on Graphs
LeetCode 324. Swing sort II
State compression DP acwing 291 Mondrian's dream
AcWing 786. 第k个数
[point cloud processing paper crazy reading frontier version 8] - pointview gcn: 3D shape classification with multi view point clouds
IDEA 中使用 Hudi
With low code prospect, jnpf is flexible and easy to use, and uses intelligence to define a new office mode