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

黑龙江省城乡建设厅网站首页东莞公司建站哪个更便宜

黑龙江省城乡建设厅网站首页,东莞公司建站哪个更便宜,中国建设银行美金账户登录网站,动漫网站开发设计思想文章目录 1. 概念1.1 角色1.2 类图 2. 代码示例2.1 需求2.2 代码2.3 类图 1. 概念 迭代器(Iterator)能够在不暴露聚合体内部表示的情况下,向客户端提供遍历聚合元素的方法。 1.1 角色 InterfaceAggregate(抽象聚合)…

文章目录

  • 1. 概念
    • 1.1 角色
    • 1.2 类图
  • 2. 代码示例
    • 2.1 需求
    • 2.2 代码
    • 2.3 类图

1. 概念

迭代器(Iterator)能够在不暴露聚合体内部表示的情况下,向客户端提供遍历聚合元素的方法。

1.1 角色

  • InterfaceAggregate(抽象聚合):定义存储、添加、删除聚合元素以及创建迭代器对象的接口
  • ConcreteAggregate(具体聚合):实现抽象聚合类。它的方法可以返回一个具体迭代器的实例
  • Iterator(抽象迭代器):定义访问和遍历聚合元素的接口,通常包含 hasNext()、next() 等方法
  • Concretelterator(具体迭代器):实现抽象迭代器接口中所定义的方法,完成对聚合对象的遍历,记录遍历的当前位置。

1.2 类图

Client
«interface»
Iterator
+HasNext() : bool
+First()
+IsDone()
+Next() : interface
+CurrentItem()
«interface»
Aggregate
+CreateIterator() : Iterator
ConcreteIterator
+HasNext() : bool
+First()
+IsDone()
+Next() : interface
+CurrentItem()
ConcreteAggregate
+CreateIterator() : Iterator

2. 代码示例

2.1 需求

实例化一个具体聚合,创建一个迭代器实例,用迭代器遍历这个聚合。

迭代器通常还会有查看首元素、尾元素、指针位置等方法,有兴趣可以自己试一下,这个简单示例里不写了。

2.2 代码

  • 代码
package mainimport "fmt"// 定义抽象迭代器
type Iterator interface {HasNext() boolNext() interface{}
}// 定义具体迭代器
type ConcreteIterator struct {//它关联具体聚合aggregate *ConcreteAggregateindex     int
}// 定义方法,查看迭代是否结束
func (i *ConcreteIterator) HasNext() bool {return i.index < len(i.aggregate.items)
}// 定义方法,返回下一个节点
func (i *ConcreteIterator) Next() interface{} {if i.HasNext() {item := i.aggregate.items[i.index]i.index++return item}return nil
}// 定义抽象聚合
type Aggregate interface {CreateIterator() IteratorAddItem(item interface{})
}// 定义具体聚合
type ConcreteAggregate struct {items []interface{}
}// 定义方法,创建迭代器
func (a *ConcreteAggregate) CreateIterator() Iterator {return &ConcreteIterator{aggregate: a}
}// 定义方法,添加item(为了测试方便,和迭代器方法无关)
func (a *ConcreteAggregate) AddItem(item interface{}) {a.items = append(a.items, item)
}func main() {//实例化一个聚合,加入三个Item,他们的类型可以不同var aggregate Aggregateaggregate = &ConcreteAggregate{}aggregate.AddItem("Item 1")aggregate.AddItem(2)aggregate.AddItem("Item 3")//实例化一个迭代器iterator := aggregate.CreateIterator()//验证结果for iterator.HasNext() {item := iterator.Next()fmt.Println(item)}
}
  • 输出
Item 1
2
Item 3

2.3 类图

Client
«interface»
Iterator
+HasNext() : bool
+Next() : interface
«interface»
Aggregate
+CreateIterator() : Iterator
+AddItem(item:interface)
ConcreteIterator
+*ConcreteAggregate aggregate
+Int index
+HasNext() : bool
+Next() : interface
ConcreteAggregate
+[]interface items
+CreateIterator() : Iterator
+GetItem(index int) : interface
+AddItem(item interface)

在这里插入图片描述

http://www.yayakq.cn/news/148368/

相关文章:

  • 南山做网站联系电话企业网络推广方案的制定
  • 做区块链好的网站推广 高端网站建设
  • 网站每天做100个外链网站费用计入什么科目
  • 福州制作手机网站深圳企业网站制作哪个
  • 网站规划与设计课程设计广州软文推广公司
  • 国开网站怎么做网级移动营销app
  • 昆山网站设计哪家好公司名字设计
  • 网站icp备案证明美团网网站建设分析
  • ASP网站开发步骤与过程wordpress获取ssl证书
  • 自己可以做一个网站吗青岛网络推广方案服务
  • 西安知名网站建设公司排名百度如何发布信息推广
  • wordpress网站关键词手工灯笼简单又好看
  • 网站更换服务器广州网站建设需要多少钱
  • 视觉传达毕业设计作品网站5 电子商务网站建设的步骤
  • 秀山网站建免费素材网有哪些
  • 上海网站编辑招聘网站建设仟金手指专业15
  • 湖北建设注册中心网站wordpress文章列表分页代码
  • 建设个人网站详细点做网站后台指的那
  • 盐城网站建设报价做招聘网站需要哪些手续
  • 心连网网站永州网站制作
  • 潍坊医院网站建设怎样在赶集微网站做微招聘信息
  • phpcms 网站打不开南阳网站搭建
  • html5酷炫网站网站建设如果没有源代码
  • 手机网站一般宽度做多大的陕西省住房和城乡建设厅综合服务网站
  • 邢台做网站备案青岛做网站排名
  • 当地网站建设问卷调查成都网站快速排名提升
  • 陕西交通建设集团网站我要做网站推广
  • 公司单位电话号码大全搜索引擎优化特点
  • 相亲网站怎么做网络技术服务
  • 县级网站建设中国万网官网登录