Skip to Content
Kotlin 编程实践
book

Kotlin 编程实践

by Ken Kousen
July 2020
Intermediate to advanced
235 pages
3h 37m
Chinese
China Machine Press
Content preview from Kotlin 编程实践
集合
105
5.10
自定义迭代器
问题
如何使自定义的集合类以更简单的方式进行遍历。
解决方案
定义一个返回迭代器的操作符函数,该迭代器同时实现 next hasNext 函数。
讨论
Java 中为实现迭代器设计模式而定义了 Iterator 接口。示例 5-28 提供了 Kotlin 中的
相关定义。
示例 5-28kotlin.collections 中的 Iterator 接口
interface Iterator<out T> {
operator fun next(): T
operator fun hasNext(): Boolean
}
Java 中,for-each 循环可以使你迭代实现 Iterable 的任何类。在 Kotlin 中,for-in
循环可以运行相似的约束。考虑一个名为 Player 的数据类与一个名为 Team 的类,参
见示例 5-29
示例 5-29Player Team
data class Player(val name: String)
class Team(val name: String,
val players: MutableList<Player> = mutableListOf()) {
fun addPlayers(vararg people: Player) =
players.addAll(people)
// ... 其他所需的函数 ...
}
Team 包含了一个存储 Player 实例的可变 list。如果你拥有一个包含几个玩家的团队, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

GraphQL 学习指南

GraphQL 学习指南

Eve Porcello, Alex Banks
Java 技术手册(原书第7版)

Java 技术手册(原书第7版)

Benjamin J. Evans, David Flanagan
Python机器学习基础教程

Python机器学习基础教程

Andreas C. Müller, Sarah Guido

Publisher Resources

ISBN: 9787111659624