- Learn Kotlin Programming(Second Edition)
- Stephen Samuel Stefan Bocutiu
- 171字
- 2021-06-24 14:13:37
Companion object extensions
Extension functions can also be added to companion objects. They would then be invoked on the companion object rather than on instances of the class.
One example of where this might be useful is when you are adding factory functions to a type. For example, we might wish to add a function to integers in order to return a different random value upon each invocation:
fun Int.Companion.random(): Int { val random = Random() return random.nextInt() }
Then, we can invoke the extension function as normal, without needing the Companion keyword:
val int = Int.random()
This isn't as useful as regular extension functions. This is because we can always create a new object and put the function in there or create a top-level function. But you may wish to associate a function with some other type's namespace. As in the preceding example, a random() function invoked on the Int type is more intuitive than the same function on a class with a name such as IntFactory or RandomInts.
- 演進式架構(原書第2版)
- The Android Game Developer's Handbook
- 深入淺出Spring Boot 2.x
- Java入門很輕松(微課超值版)
- Java編程指南:基礎知識、類庫應用及案例設計
- Object-Oriented JavaScript(Second Edition)
- Responsive Web Design by Example
- 零基礎學單片機C語言程序設計
- Elasticsearch Essentials
- Android系統下Java編程詳解
- Mastering Apache Camel
- 從零開始:C語言快速入門教程
- Functional Python Programming
- C語言程序設計教程
- Unreal Engine Game Development Cookbook