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 编程实践
序列
117
个值的函数。它的签名如下所示:
fun <T : Any> generateSequence(
seed: T?,
nextFunction: (T) -> T?
): Sequence<T>
在这种情况下,seed 是紧随给定的整数之后的整数,函数简单地加一。按照正常的
Kotlin 习惯用法,lambda 表达式放在generateSequence 函数中括号后。序列中
fiest 函数返回满足提供的 lambda 表达式的第一个值,在本案例中,该变量是对
isPrime 扩展函数的引用。
在本案例中,nextPrime 函数生成了一个整数的无限序列,逐个验证它们并找到第一
个质数。first 函数返回一个值而不是一个序列,所以它是一个
末端
操作符。如果没有
末端操作符,这个序列中将不会有值被处理。在本案例中,将为 first 操作赋予一个
被称为 predicate(谓词)(因为它返回布尔值)的 lambda 表达式,并且该序列将继续
产生值,直到满足谓词为止。
参阅
6.3 节也讨论了无限序列。
6.3
管理无限序列
问题
如何获取无限序列的一部分?
解决方案
使用返回 null 的序列生成器,或者使用诸如 takeWhile 的序列函数。
讨论
序列与 Java 中的流类似,都拥有过渡操作或末端操作。过渡操作返回一个新的序列,末
端操作返回任意其他值。当你在序列上通过函数调用创建了一个流水线时,在进行末端
操作之前不会有数据通过序列。
示例 6-7 中展示的函数 firstNPrimes 计算从 ...
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