[易学易懂系列|rustlang语言|零基础|快速入门|(13)]

有意思的基础知识

Generics泛型

我们今天来看看泛型。

什么是泛型?

我们来看看这样的情景:

我们要写一个函数,这个函数可以处理不同类型的值,但这个值的类型,在运行时,才由调用者确定。

我们不可能在函数方法中,一开始就写死。

那要什么办?

用泛型。

比如:用x : T替换x : u8

我们来看看例子:

泛型函数:

fn takes_anything<T>(x: T) { // x has type T, T is a generic type
} fn takes_two_of_the_same_things<T>(x: T, y: T) { // Both x and y has the same type
} fn takes_two_things<T, U>(x: T, y: U) { // Multiple types
}

泛型结构体:

struct Point<T> {
x: T,
y: T,
} fn main() {
let point_a = Point { x: 0, y: 0 }; // T is a int type
let point_b = Point { x: 0.0, y: 0.0 }; // T is a float type
} //

最新文章

  1. Linux(Unix)时钟同步ntpd服务配置方法
  2. Linux tricks
  3. CI,从数据库读取数据
  4. Windows 8.1 Enterprise 下 安装 Eclipse 官方中文包后无法输入任何内容
  5. oracle 语句创建表空间、用户、授权
  6. FastReport产品介绍及免费下载地址
  7. 剑指Offer33 第一个只出现一次的字符
  8. Umbraco扩展开发
  9. iOS 导航条的影响
  10. django1.6.x(python3.3)使用pymysql连接mysql
  11. JS-运动基础(一)
  12. [转载] A successful Git branching model/GIT分支管理是一门艺术
  13. 我的 FPGA 学习历程(12)—— 电子钟项目准备
  14. TP5.x——多数据库连接查询
  15. hibernate框架学习之数据抓取(加载)策略helloworld
  16. java web (sevlet)请求之get,post,forward,redirect
  17. 剑指offer(64)滑动窗口中的最大值
  18. 面向对象数据库(Object Oriented Databases)
  19. android studio 设置安装不占用C盘
  20. 前端框架VUE----babel

热门文章

  1. Kotlin概述
  2. 比较&amp;关系运算符
  3. nodejs之express中间件body-parser使用
  4. 四十四:数据库之SQLAlchemy之join实现复杂查询
  5. CentOS mysql安装
  6. oracle审计登录失败用户
  7. Arouter核心思路和源码
  8. C++ 多文件编译简述:头文件、链接性、声明与定义
  9. flask url_for的用法
  10. CMD 显示当前时间和日期