首页 > 编程语言 >Rust 编程零基础学习+实战(3)

Rust 编程零基础学习+实战(3)

时间:2024-09-25 20:51:54浏览次数:9  
标签:实战 Iterator 编程 iter numbers 蛋糕 Rust

命令式编程与功能式编程

个人理解,命令式编程(Imperative)指的是编程中详细规定每一步的细节,以达到最大运行效率。功能式编程(functional)指的是以简洁的方式调用已知的函数解决问题。举个例子,做蛋糕,可以告知蛋糕师傅每一步如何做,也可以把理想的蛋糕直接描述给蛋糕师傅,而不考虑蛋糕师傅如何实现这个蛋糕。好的蛋糕师傅总是以最高效率实现我们描述的蛋糕,同样的,好的编程语言也应当提供简洁高效的函数,以方便程序员们进行对算法的描述,"only pay for what you use",达到零开销的抽象。Rust提供了许多方便高效的功能。

Iterator

Rust提供迭代器(Iterator),以方便对常用的数据结构(Collections)进行操作。参考手册std::iter - Rust,Iterator核心是如下代码

trait Iterator {
    type Item;
    fn next(&mut self) -> Option<Self::Item>;
}

其中type为指向的数据类型,next即下一个Iterator,如果没有会返回None。Rust中使用Iterator的好处在于,Iterator本身定义包括许多常用功能,常用功能可查阅手册Iterator in std::iter - Rust。定义Iterator方式有如下三种

  • iter(), which iterates over &T.
  • iter_mut(), which iterates over &mut T.
  • into_iter(), which iterates over T.

Rust中的for循环使用的就是Iterator。另外Rust还支持无限数组,但应小心使用

let numbers = 0..;
let five_numbers = numbers.take(5);

for number in five_numbers {
    println!("{number}");
    //0
    //1
    //2
    //3
    //4
}

其他

string转换至str:as_str(&self)

char大写后转为String:c.to_uppercase().nth(0).unwrap_or(c)

打印Vec可使用Debug模式:println!("{:?}", Vec)

标签:实战,Iterator,编程,iter,numbers,蛋糕,Rust
From: https://blog.csdn.net/2401_86724578/article/details/142445954

相关文章

  • TCP网络编程概述超详解
    文章目录TCP网络编程概述1.TCP协议的特点2.TCP与UDP的差异3.TCP编程流程TCP网络编程相关函数详解1.`socket()`:创建套接字参数说明:返回值:示例:2.`connect()`:客户端连接服务器参数说明:返回值:示例:3.`bind()`:服务器绑定地址和端口参数说明:返回值:示例:4.`listen()`:监......
  • GUI编程Day03
    标签labelnewJLabel("xxx")图标Iconpackagecom.dongfang.lesson04;importjavax.swing.*;importjava.awt.*;//图标需要实现类publicclassIconDemoextendsJFrameimplementsIcon{privateintwidth;privateintheight;publicIconDemo(){......
  • 【C++】面向对象编程的三大特性:深入解析继承机制
    C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C++内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriority......
  • Java毕业设计-基于SSM框架的校园失物招领平台系统项目实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • Java毕业设计-基于SSM框架的网上奶茶店系统项目实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • 探索腾讯云AI代码助手:智能编程的新时代
    前言&emsp;&emsp;hello,大家好我是恒川,今天我来给大家安利一款非常好用的AI代码助手,它是由腾讯云自研的一款开发编程提效辅助工具,开发者可以通过插件的方式将AI代码助手安装到编辑器中辅助编程工作(VSCode或者JetBrians系列IDE);而AI代码助手插件将提供:自动补全代码、根据注......
  • AI编程方法论:我如何与Cursor协作
    我是LoreLuo罗耳,一名10年后端经验的程序员,目前在一家金融公司就职.AI编程为我带来了全新的开发体验,我想分享一下我是如何在工作中使用Cursor的.AI能力的演进随着AI技术的不断发展,我们与AI合作的方式也在不断变化。在上半年,我主要使用GitHubCopilot和idea的AI助手进......
  • Elasticsearch 实战应用详解
    Elasticsearch是一个分布式搜索和分析引擎,广泛应用于各种场景,如全文搜索、日志与事件数据分析、实时数据流处理等。本文将详细介绍如何在实际项目中使用Elasticsearch,包括安装配置、基本操作、高级查询及优化策略。1.安装和配置安装Elasticsearch通过官方包管理器安装......
  • Rust字符串类型全解析
    字符串是每种编程语言都绕不开的类型,不过,在Rust中,你会看到远比其他语言更加丰富多样的字符串类型。如下图:为什么Rust中需要这么多种表示字符串的类型呢?初学Rust时,可能无法理解为什么要这样设计?为什么要给使用字符串带来这么多不必要的复杂性?其实,Rust中对于字符串的设计,优先......
  • RusTitW:大规模语言视觉文本识别数据集(猫脸码客 第190期)
    RusTitW:RussianLanguageVisualTextRecognition一、引言在信息爆炸的现代社会,文本作为信息传递的重要载体,扮演着不可或缺的角色。随着计算机视觉与模式识别技术的飞速发展,自动化文本识别(OCR,OpticalCharacterRecognition)技术日益成熟,极大地提升了信息处理的效率与准确性。......