当前位置: 首页 > news >正文

怎样做网站建设方案/淘宝怎样优化关键词

怎样做网站建设方案,淘宝怎样优化关键词,找做网站公司需要注意什么条件,网站开通微信支付收费本文来自网易云社区作者:孙有军 1:gradle脚本是使用groovy语言写的(DSL),groovy中有一个重要的概念闭包(Closure),Closure是一段单独的代码块,它可以接收参数&#xff0c…

本文来自网易云社区

作者:孙有军


1:gradle脚本是使用groovy语言写的(DSL),groovy中有一个重要的概念闭包(Closure),Closure是一段单独的代码块,它可以接收参数,返回值,也可以被赋值给变量。eg:

//无参数def Closure1 = { println 'Hello world' }
Closure1()// 执行闭包,输出Hello world//一个参数def Closure2 = { String str -> println str }//如果只有一个参数可以用it代替,写作def Closure2 = {println it}Closure2('Hello world')// 执行闭包,输出Hello world//多个参数def Closure3 = { String str,int n -> println “$str : $n" }//也可以写作 {str,n -> println “$str : $n" }
Closure3('Hello world’, 1)// 执行闭包,输出Hello world : 1//使用变量
def var=“Hello world"
def Closure4 = { println var }//也可以写作 {str,n -> println “$str : $n" }
Closure4()// 执行闭包,输出Hello world//改变上下文
def Closure5 = {println Var} //这时还不存在 
MyClass m = new MyClass()
Closure5.setDelegate(m)// 改变上下文,这时Var已经有了,在执行之前改变了,
Closure5()//执行闭包,输出Hello worldclass MyClass {def Var = 'Hello world'
}

把closure当做参数传递 closure的好处就是可以传递给不同的方法,这样可以帮助我们解耦执行逻辑。前面的例子中已经展示了如何把closure传递给一个类的实例。下面我们将看一下各种接收closure作为参数的方法:

1.只接收一个参数,且参数是closure的方法: myMethod(myClosure) 2.如果方法只接收一个参数,括号可以省略: myMethod myClosure 3.可以使用内联的closure: myMethod {println ‘Hello World’} 4.接收两个参数的方法: myMethod(arg1, myClosure) 5.和4类似,单数closure是内联的: myMethod(arg1, { println ‘Hello World’ }) 6.如果最后一个参数是closure,它可以从小括号从拿出来: myMethod(arg1) { println‘Hello World’ }

  1. Android中使用

buildscript { //  等同 def buildscript(Closure closure),?? buildscript直接使用,那是在什么地方定义的?repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.2.3'}
}

方法都是在Project中定义的,构建脚本顶层的语句块都会被委托给Project的实例,eg:  在Project中buildcript的定义:

  /*** <p>Configures the build script classpath for this project.** <p>The given closure is executed against this project's {@link ScriptHandler}. The {@link ScriptHandler} is* passed to the closure as the closure's delegate.** @param configureClosure the closure to use to configure the build script classpath.*/void buildscript(Closure configureClosure);

上面可以看到repositories在ScriptHandler中执行,在ScriptHandler中又委托到RepositoryHandler。

3: task 有两个生命周期,配置阶段和执行阶段,gradle在执行task时,都会先对task进行配置,task中最顶层的代码就是配置代码,在配置阶段执行,其他代码实在执行阶段执行的。eg:

task Task1{println “hello” // 这段代码是在gradle配置阶段执行的}task Task2{
def name =“hello”// 这段代码是在gradle配置阶段执行的doLast{println name // 这段代码是在gradle执行阶段执行的}
}task Task3 << {// << 语法糖,相当于doLast,因此整个代码都是在执行阶段执行的println name // 这段代码是在gradle执行阶段执行的}

4:task执行顺序 dependsOn: TaskB 依赖TaskA, TaskB.dependsOn TaskA 这样每次执行B都会先执行A,下面是相同的写法

task A << {println 'Hello from A'}
task B {    dependsOn AdoLast {        println 'Hello from B'  }
}

同理也可以改变已有的依赖顺序,直接改变dependsOn,也可以同时依赖多个任务。

mustRunAfter: 有A B C三个task, C依赖于A,B,但A,B不相互依赖,如果要保证每次执行时A都在B之前执行,可以写作

task A << {println 'A'}
task B << {println 'B'}
task C << {println 'C'}C.dependsOn A
C.dependsOn B
B.mustRunAfter A

finalizedBy:现在有两个task,unit和ui,假定这两个task都会输出测试报告,把这两个测试报告合并成一个:

task unit << {println 'Hello from unit tests'}
task ui << {println 'Hello from UI tests'}
task tests << {println 'Hello from all tests!'}
task mergeReports << {println 'Merging test reports'}tests.dependsOn unit
tests.dependsOn ui
ui.mustRunAfter unit
mergeReports.dependsOn tests // 执行这个就可以合并了。// 下面这种方式等价于上面这种tests.dependsOn unit
tests.dependsOn ui
ui.mustRunAfter unit
mergeReports.dependsOn tests

tests.finalizedBy mergeReports// 执行tests就能合并了。表示tests执行完成后,在执行mergeReports




网易云免费体验馆,0成本体验20+款云产品!

更多网易研发、产品、运营经验分享请访问网易云社区


相关文章:
【推荐】 HBase - 数据写入流程解析
【推荐】 洞察数据中隐藏的故事——网易有数的“正确”使用方式
【推荐】 从golang的垃圾回收说起(下篇)

转载于:https://www.cnblogs.com/163yun/p/9698944.html

http://www.jmfq.cn/news/4936195.html

相关文章:

  • 网页设计的基本结构/优化网站排名软件
  • 如何查看网站的空间/企业整站seo
  • ui培训班学费多少/绍兴seo公司
  • 境外网址app/seo排名优化软件价格
  • 做网站设计需求/小程序设计
  • 大丰企业做网站多少钱/免费推广方法
  • 163免费邮箱入口/广州seo关键词优化费用
  • 推广网站哪家做的好/今天最新的新闻
  • 优质网站建设方案/年轻人不要做网络销售
  • 建筑云平台/合肥关键词排名优化
  • 创意网站页面/b2b网站大全免费
  • 云南网站制作怎么计费/武汉seo管理
  • 济南信息化网站/漳州seo网站快速排名
  • 南阳锐诚网站建设/软文营销文章范文
  • 魔方建站/口碑营销的案例及分析
  • 自己做网站用什么数据库/汕头seo网站推广
  • 中国印花图案设计网站/百度seo排名优化软件分类
  • 潍坊专业网站建设最新报价/安徽网站优化
  • 做网站都需要哪些信息/全球搜怎么样
  • 有一个私人做慈善的网站/百度seo关键词工具
  • 建设银行的网站用户名是什么意思/公司推广方案
  • 网站建设技术入股合同/市场推广方案和思路
  • 无锡网站建设价格/品牌如何做推广
  • 建设 静态网站/哪些广告平台留号码
  • 公司建设一个网站需要多少钱/网推渠道
  • 网页美工设计图片/淘宝seo优化是什么
  • 大连企业网站模板/智能建站平台
  • 做网站参考文献/网站广告投放收费标准
  • 外卖网站怎么做/关键词挖掘方法
  • 网站建设的五类成员/珠海网站设计