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

重庆网站建设设计公司信息本地wordpress数据

重庆网站建设设计公司信息,本地wordpress数据,合肥网站推广公司排名,wordpress mysql8.0ResultBuilder学习笔记三#xff1a;支持循环 我们在前面的博文中创建了一个非常简单的结果构建器ConcatBuilder#xff0c;用于连接多个字符串#xff0c;随后在后续博文中对之进行了扩展#xff0c;使其可以支持自定义的输入数据类型#xff0c;这个特性非常重要#…ResultBuilder学习笔记三支持循环 我们在前面的博文中创建了一个非常简单的结果构建器ConcatBuilder用于连接多个字符串随后在后续博文中对之进行了扩展使其可以支持自定义的输入数据类型这个特性非常重要它是DSL的基础。 这篇博文将继续对ConcatBuilder进行扩展这次我们讨论如何增加对循环的支持。 理解循环 ConcatBuilder 已经可以支持IntString和Star为输入。只要愿意还可以增加更多的数据类型。但是如果要使用它拼接1到10 个整数该如何呢当然可以像下面这样 ConcatBuilder var str:String { 12345678910 }print( str ) 但是100个1000个整数呢总不至于写100遍1000遍吧。 我们当然希望按下述循环方式 ConcatBuilder var str:String { 春眠不觉晓处处闻啼鸟for i in 1...100 {i }}这时就需要ResultBuilder能够支持循环了。 支持循环 就像能够轻易支持多种输入数据类型一样ResultBuilder也可以轻易支持循环 只需要增加某种类型的buildArray函数即可。对于我们的场景 在ConcatBuilder中像下面这样实现buildArray函数 static func buildArray(_ components: [String]) - String {return components.joined(separator: )}再次运行结果如下 春眠不觉晓处处闻啼鸟123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100没错就这么简单可能你已经注意到为什么上述buildArray的输入参数不是整数而是字符串类型呢答案是前面的buildExpression (_ component: Int) 函数,ResultBuilder会使用该函数将for-in循环中的每个整数首先转换成字符串最终构成一个临时的字符串数组然后再调用buildArray函数输出。这些识别调度和转换都由ResultBuilder自动完成我们无需关心。这也正是ResultBuilder设计精妙之处。 由于有了不同的buideExpression()函数如下循环代码都可以正常工作 ConcatBuilder var str:String { 春眠不觉晓处处闻啼鸟//整数for i in 1...5{i }//自定义类型for i in 1...3{Star(length:i)}//混合for i in 1...3{iStar(length:i) 字符串\(i)}}ConcatBuilder 完整代码 struct Star{let length:Intfunc getString()-String{return Array(repeating:*,count:length).joined()}}resultBuilderstruct ConcatBuilder {//最终输出static func buildBlock(_ components: String...) - String {return components.joined(separator: )}//支持整数输入static func buildExpression (_ component: Int) - String {return \(component) }//支持字符串输入static func buildExpression (_ component: String) - String {return component }//支持自定义类型输入 static func buildExpression (_ component: Star) - String {return component.getString() }//支持for-in循环static func buildArray(_ components: [String]) - String {return components.joined(separator: )} }
http://www.pierceye.com/news/458451/

相关文章:

  • 厦门建网站网址ai自动设计logo
  • 蓝色织梦cms企业网站模板全站源码招聘类网站如何做
  • 郑州建设银行网站wordpress数据库怎么设置
  • 电子商务网站实例php网站建设哪家好
  • 网站开发课程报告心得简单的网页设计作品欣赏
  • 网站建设用什么系统华为弹性云做网站
  • 莱芜高端网站建设报价网站色彩策划
  • 房地产项目网站做网站互联网公司有哪些
  • 凡科做网站友情链接怎么做wordpress广告位设置
  • org已经备案的网站wap网站建设服务
  • 企业网站模板免费下载企业网站模板免费完整版的网站模板
  • 外贸网站建设公司价格怎样做触屏版手机网站
  • 南宁站建好就够用秦皇岛微信推广平台
  • 物流公司做网站有用吗河北省住房和城乡建设网站
  • 网站举报官网seo站长论坛
  • 建站工具有哪些论坛网站建设总体要求
  • 公司网页网站建设 pptwordpress php 采集
  • 遵义网站开发公司舟山网站建设企业
  • 外贸网站一站式服务招网站建设销售
  • 绚丽的网站wordpress进入后台显示500
  • 威海城乡与住房建设部网站小颜自助建站系统
  • 域名怎么解析到网站做响应式网站需要学哪些知识
  • wordpress手机端慢seoer是什么意思
  • wordpress添加站点江苏廉政建设网站
  • 网站seo是什么做二维码推送网站
  • win7 iis默认网站设置游戏推广员
  • 湖北二师网站建设排名潍坊专业捞泵电话
  • 个人网站设计内容和要求萍乡网站制作公司
  • 合肥网站seo费用怎么把文章导入wordpress
  • 赣州网站推广哪家最专业阿里云wordpress数据库备份