前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >rust的高级特性

rust的高级特性

原创
作者头像
李子健
发布于 2022-05-10 14:08:20
发布于 2022-05-10 14:08:20
6670
举报
文章被收录于专栏:每日一善每日一善

类型系统

rust中的表达式是什么{}包围的部分,函数,impl,match里面,if else表达式,通过这些功能分割系统

  • let语句的作用,创建新变量并且绑定资源
  • 终止loop默认返回()
  • rust是区分有符合和无符号类型的,和go类似
  • rust支持类型推断
  • rust支持类型别名 type xxx =xxx;

两种字符串 string和str

String:包含所有权的字符串

代码语言:txt
AI代码解释
复制
* 支持字符串切片
  • str只能创建引用类型。&str借用字符串
    • 'static 整个生命周期
    • &str不可变
  • 函数中使用字符串将切片传入

&str和string的场景

  • 尽可能使用&str
  • &str使用中零成本

全局变量

  • 常量 const, &'static
  • 静态值 static
  • 编译期函数 const fn 纯函数
  • lazy_static!将静态值动态化,构建从任意地方可以访问的静态类型

迭代器

  • 迭代器trait Iterator
  • 命名规范 iter()通过引用获取元素 iter_mut()可变引用 * into_iter()获取值的所有权 我们可以通过实现Iterator实现迭代器

高级类型

  • 不定长类型
    • 切片 T
    • dyn trait 特征对象
    • 不定长字段作为最后一个字段的结构体
    • &str
  • 函数类型:支持函数类型
  • never类型!和函数分发 忽略编译器检测
  • 联合,支持union,主要是为了对接c语言
  • Cow写时复制的智能指针
代码语言:rust
AI代码解释
复制
const fn test1(a: u32) -> u32 {
    0xDEADBEEF ^ a
}

fn main() {
    println!("{}", test1(12));

    let hi = String::from("Hello");
    println!("{}", hi);

    let tchar = &hi[0..3];
    println!("{:?}", tchar);
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
超硬核HashMap底层构成以及扩容原理
JDK1.8 之前 HashMap 底层是node数组和链表结合在一起使用也就是链表散列。HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过(n-1)&hash判断当前元素存放的位置(这里的n指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的hash 值以及key 是否相同,如果相同的话,直接覆盖,不相同就通过
名字是乱打的
2022/05/13
5380
超硬核HashMap底层构成以及扩容原理
Java集合之Map接口
如果你看过 HashSet 源码的话就应该知道:HashSet 底层就是基于 HashMap 实现的。(HashSet 的源码非常非常少,因为除了 clone()、writeObject()、readObject()是 HashSet 自己不得不实现之外,其他方法都是直接调用 HashMap 中的方法。
黑洞代码
2021/01/28
5420
Java集合之Map接口
【Java面试总结】Java集合
双向循环链表:最后一个节点的 next 指向head,而 head 的prev指向最后一个节点,构成一个环。
Rochester
2020/09/03
7850
HashMap(JDK1.8)源码+底层数据结构分析
HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。
黑洞代码
2021/02/09
2560
了解HashMap
HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一,是非线程安全的。
橘子君丶
2023/03/08
4320
了解HashMap
HashMap&ConcurrentHashMap&HashTable
JDK1.8以前Hashmap底层是数组和链表结合在一起使用,也就是散列链表。hashmap的key的hashcode()扰动函数处理后得到hash值,然后通过(n-1)& hash 判断当前元素存放的位置,如果当前位置存在元素的话,就判断当前位置存在的元素是否与之相同,相同则直接覆盖,不相同就通过拉链法解决冲突。
Tim在路上
2020/08/04
4300
BAT面试必问HashMap源码分析
HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。
美的让人心动
2019/05/21
3220
BAT面试必问HashMap源码分析
Java集合框架常见面试题
从下图可以看出,在 Java 中除了以 Map 结尾的类之外, 其他类都实现了 Collection 接口。
Vincent-yuan
2021/08/13
6560
Java集合框架常见面试题
【Java高薪面试宝典】Day3、图解HashMap高频面试及底层实现架构!
Map接口大家应该都听说过吧?它是在Java中对键值对进行存储的一种常用方式,同样其中的HashMap我相信大家应该也不会陌生,一说到HashMap,我想稍微知道点的小伙伴应该都说是:这是存储键值对的,存储方式是数组加链表的形式。但是其中真正是如何进行存储以及它的底层架构是如何实现的,这些你有了解吗?
灰小猿
2021/06/09
3010
【Java高薪面试宝典】Day3、图解HashMap高频面试及底层实现架构!
HashMap常见面试题_java面试题大汇总
大家好,又见面了,我是你们的朋友全栈君。 目录 1.HashMap的数据结构? 2.HashMap的工作原理? 3.当两个对象的hashCode相同会发生什么? 4.你知道hash的实现吗?为什么要这
全栈程序员站长
2022/09/22
3900
HashMap常见面试题_java面试题大汇总
java集合详解完整版(超详细)「建议收藏」
联合整理 https://blog.csdn.net/feiyanaffection/article/details/81394745 https://www.cnblogs.com/linliquan/p/11323172.html
全栈程序员站长
2022/08/19
1.1K0
java集合详解完整版(超详细)「建议收藏」
「Java面试题精华集」1w字的Java集合框架篇(2020最新版)附PDF版 !
一个多月前,我和一些小伙伴决定做一系列的 Java 知识点常见重要问题的小册,方便用来夯实基础!小册的标准就一个,那就是:取精华,取重点。每一本小册,我们都会充分关注我们所总结的知识点是否达到这个标准。
Guide哥
2020/06/28
1.3K0
「Java面试题精华集」1w字的Java集合框架篇(2020最新版)附PDF版 !
HashMap夺命14问,你能坚持到第几问?
在JDK1.7中,由”数组+链表“组成,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。
Java技术江湖
2022/04/07
1.5K0
HashMap夺命14问,你能坚持到第几问?
JAVA面试备战(二)--集合
List(对付顺序的好帮手):List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象
程序员爱酸奶
2022/04/12
5150
JAVA面试备战(二)--集合
HashMap常见面试题(超全面):实现原理、扩容机制、链表何时升级为红黑树、死循环
十一、为什么我们需要hash()函数 (n-1)\&hash,而不是直接用key的hashcode直接计算下标
寻求出路的程序媛
2024/10/17
7870
HashMap常见面试题(超全面):实现原理、扩容机制、链表何时升级为红黑树、死循环
面渣逆袭:HashMap追魂二十三问
HashMap作为我们熟悉的一种集合,可以说是面试必考题。简单的使用,再到原理、数据结构,还可以延伸到并发,可以说,就一个HashMap,能聊半个小时。
三分恶
2021/12/04
4340
面渣逆袭:HashMap追魂二十三问
面霸篇:Java 核心集合容器全解(核心卷二)
码哥在 《Redis 系列》的开篇 Redis 为什么这么快中说过:学习一个技术,通常只接触了零散的技术点,没有在脑海里建立一个完整的知识框架和架构体系,没有系统观。这样会很吃力,而且会出现一看好像自己会,过后就忘记,一脸懵逼。
码哥字节
2021/09/15
3950
HashMap连环18问
对于 JAVA 求职者来说,HashMap 可谓是重中之重,是面试必考点。然而 HashMap 的知识点非常多,复习起来花费精力很大,库森当年校招面试时就经历过这种痛苦。所以,结合自己的面试经验,斗胆写一篇关于 HashMap 的面试专题文章,希望对小伙伴有所帮助!
狼王编程
2022/09/22
5950
HashMap连环18问
【不做标题党,只做纯干货】HashMap在jdk1.7和1.8中的实现
Java集合类的源码是深入学习Java非常好的素材,源码里很多优雅的写法和思路,会让人叹为观止。HashMap的源码尤为经典,是非常值得去深入研究的,jdk1.8中HashMap发生了比较大的变化,这方面的东西也是各个公司高频的考点。网上也有很多应对面试的标准答案,我之前也写过类似的面试技巧(面试必备:Hashtable、HashMap、ConcurrentHashMap的原理与区别),应付一般的面试应该是够了,但个人觉得这还是远远不够,毕竟我们不能只苟且于得到offer,更应去勇敢的追求诗和远方(源码)。
猿人谷
2018/12/06
6040
【不做标题党,只做纯干货】HashMap在jdk1.7和1.8中的实现
Java集合容器面试题(2020最新版)
Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章持续更新中…
Java架构师必看
2020/04/10
1.2K0
相关推荐
超硬核HashMap底层构成以及扩容原理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档