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 编程实践
56
3
函数)内赋值,因为它们的值必须在编译时可知。
考虑为一个任务定义最小优先级与最大优先级,参见示例 3-1
示例 3-1:定义编译时常量
class Task(val name: String, _priority: Int = DEFAULT_PRIORITY) {
companion object {
const val MIN_PRIORITY = 1
const val MAX_PRIORITY = 5
const val DEFAULT_PRIORITY = 3
}
var priority = validPriority(_priority)
set(value) {
field = validPriority(value)
}
private fun validPriority(p: Int) =
p.coerceIn(MIN_PRIORITY, MAX_PRIORITY)
}
➊ 
编译时常量。
➋ 
拥有自定义 setter 的属性。
➌ 
私有的验证函数。
在本示例中,使用了 Kotlin(以 Java)中常见的全部字母大写的建议来定义常量。本
示例还利用了自定义 setter 操作,可以将任何提供的优先级映射到给定范围。
意,val 是一个Kotlin 关键字,但是const 是一个修饰符,就如同private
inline 以及其他更多修饰符一样。这就是为什么 const 必须与 val 一起使用而不是
代替 val
参阅
3.2 节涵盖了关于自定义 ...
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