
-
也可以定义到任务的外面

-
action使用
| def map=new HashMap<String,Object>(); |
| map.put("action",{println "taskD.."}) |
| |
| task(map,"a"){ |
| description 'taskA description....' group "atguigu" |
| |
| doFirst { |
| def name = 'doFirst..' println name |
| } |
| |
| doLast { |
| def name = 'doLast..' println name |
| } |
| } |
| |
| |
| a.doFirst { |
| println it.description |
| } |
| |
| a.doLast { |
| println it.group |
| } |

| 无论是定义任务自身的 action,还是添加的 doLast、doFirst 方法,其实底层都被放入到一个 Action 的 List中了,最初这个 action List 是空的, |
| 当我们设置了 action【任务自身的行为】,它先将 action 添加到列表中,此时列表中只有一个 action,后续执行 doFirst 的时候 doFirst 在 action |
| 前面添加,执行 doLast 的时候 doLast 在 action 后面添加。doFirst永远添加在 actions List 的第一位,保证添加的 Action 在现有的 action |
| List 元素的最前面;doLast 永远都是在 action List末尾添加,保证其添加的 Action 在现有的 action List 元素的最后面。一个往前面添加,一个 |
| 往后面添加,最后这个 action List 就按顺序形成了 doFirst、doSelf、doLast 三部分的 Actions,就达到 doFirst、doSelf、doLast 三部分的 |
| Actions 顺序执行的目的 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术