- Mastering Rust
- Rahul Sharma Vesa Kaihlavirta
- 247字
- 2021-07-02 13:35:30
Abstracting behavior with traits
From a polymorphism and code reuse perspective, it is often a good idea to separate shared behavior and common properties of types from themselves in code and only have methods that are unique to themselves. In doing so, we allow different types to relate to each other with these common properties, which allows us to program for APIs that are more general or inclusive in terms of their parameters. This means that we can accept types that have those shared properties while not being restricted to one particular type.
In object-oriented languages such as Java or C#, interfaces convey the same idea, where we can define shared behavior that many types can implement. For example, instead of having multiple sort functions, which take in a list of integer values, and other functions that take in a list of string values, we can have a single sort function that can take a list of items that implement the Comparable or Comparator interface. This allows us to pass anything that is Comparable to our sort function.
Rust also has a similar yet powerful construct known as traits. There are many forms of traits in Rust, and we'll look at most of them and the ways we can interact with them briefly. Also, when traits are mixed with generics, we can restrict the range of parameters that we can pass to our APIs. We'll see how that happens when we learn more about trait bounds.
- Spring 5.0 Microservices(Second Edition)
- R語言經典實例(原書第2版)
- 摩登創客:與智能手機和平板電腦共舞
- 控糖控脂健康餐
- Python從菜鳥到高手(第2版)
- 趣學Python算法100例
- 營銷數據科學:用R和Python進行預測分析的建模技術
- Blender 3D Incredible Machines
- RabbitMQ Cookbook
- 51單片機C語言開發教程
- Building Wireless Sensor Networks Using Arduino
- Fast Data Processing with Spark(Second Edition)
- WebStorm Essentials
- Python面向對象編程(第4版)
- SOA Patterns with BizTalk Server 2013 and Microsoft Azure(Second Edition)