首页 > 其他分享 >rust语法super、self和Self

rust语法super、self和Self

时间:2024-04-02 19:46:26浏览次数:25  
标签:self 模块 foo super Self fn

当调用模块的函数时,需要指定完整的路径。
1)use关键字包括范围内的所有模块。 因此,可以直接调用函数,而不必在调用函数时包含模块。Rust中的use关键字缩短了调用函数的长度,使函数的模块在范围内。
2)使用 * 运算符
*运算符用于将所有项目放入范围,这也称为glob运算符。 如果使用glob运算符,那么不需要单独指定枚举变量。
3)使用 super 关键字
super关键字用于从当前模块访问父模块,它使能够访问父模块的私有功能。

//self
struct Rectangle {
    width: u32,
    height: u32,
}

impl Rectangle {
    fn area(&self) -> u32 {
        self.width * self.height  //结构实例,"."
    }
}

fn foo() {}

fn bar() {
    self::foo();  //本模块,::
}

fn main() {}

//Self
trait T {
    type Item;  //关联类型
    const C: i32;  //常量,书里没讲,更没在特性里见过。说明特性可以有常量

    fn new() -> Self;  //实施者的类型

    fn f(&self) -> Self::Item;  //实施时决定
}

struct S; //空结构

impl T for S {
    type Item = i32;  //具体化
    const C: i32 = 9;  //特性里的数据赋值

    fn new() -> Self {           // 类型S
        S
    }

    fn f(&self) -> Self::Item {  // i32
        Self::C                  // 9, 此时没有实例,实施的是类型
    }
}


//super
mod a {
    pub fn foo() {}
}
mod b {
    pub fn foo() {
        super::a::foo(); // 父模块
    }
}
fn main() {}

//串联
mod a {
    fn foo() {}

    mod b {
        mod c {
            fn foo() {
                super::super::foo(); // call a's foo function
                self::super::super::foo(); // call a's foo function
            }
        }
    }
}
fn main() {}

 

标签:self,模块,foo,super,Self,fn
From: https://www.cnblogs.com/banking/p/18111359

相关文章

  • Supervisor 安装与使用
    一、Supervisor介绍Supervisor是一个用Python编写的进程管理工具,它可以用于监控和控制类UNIX操作系统上的多个进程。它是一个客户端/服务器系统,其中Supervisor的服务器端称为supervisord,负责启动管理的子进程、响应客户端命令、重启崩溃或退出的子进程、记录子进程的st......
  • 一文搞懂!super(子类, self).父类方法(参数)的作用及使用方法
    文章目录一、作用详解二、使用方法三、注意事项一、作用详解super(子类,self).父类方法(参数)的作用是:在子类中调用父类方法。下面我们来拆解一下这句代码:super():输入一个对象,它会将方法调用委托给该对象的父类。super(子类,self):输入的对象是子类,self指子类实......
  • Stepwise Self-Consistent Mathematical Reasoning with Large Language Models
    本文是LLM系列文章,针对《StepwiseSelf-ConsistentMathematicalReasoningwithLargeLanguageModels》的翻译。基于大型语言模型的逐步自洽数学推理摘要1引言2相关工作3TriMaster100数据集4循序渐进的自洽思维链5实验6结论摘要使用大型语言模型进......
  • superset安装完整过程
    1.安装superset所需python依赖包wtforms_json、flask_compress、celery、flask_migrate、flask_talisman、flask_caching、sqlparse、bleach、markdown、numpy、pandas、parsedatetime、pathlib2、simplejson,humanize,python-geohash,polyline,geopy,cryptography,backoff,msgpack,pyarr......
  • 面对对象10:Super详解
    1.person类packagecom.oop.demo05;//在Java中,所有的类都默认直接或间接继承Object类//父类publicclassPerson{//无参默认构造器,当方法被重写时,需要被显示定义publicPerson(){System.out.println("Person无参执行了!");}protectedStri......
  • 论文解读(UDA-GCN)《Unsupervised Domain Adaptive Graph Convolutional Networks》
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:UnsupervisedDomainAdaptiveGraphConvolutionalNetworks论文作者:论文来源:2020aRxiv论文地址:download 论文代码:download视屏讲解:click1-摘要图卷积网络(GCNs)在许多与图相关的分析任务中都取得了令人印......
  • 【AI】发现一款运行成本较低的SelfHosting语言模型
    【背景】作为一个想构建局域网AI服务的屌丝,一直苦恼的自然是有限的资源下有没有对Spec要求低一点的SelfHosting的AI服务框架了。今天给大家介绍这款听起来有点希望,但是我也还没试验过,感兴趣的可以去尝试看看。【介绍】大模型生成式AI与别的技术不同,由于资源要求高,玩儿起......
  • 二 Superset通过API创建数据库连接和数据集
    Superset通过API创建数据库连接和数据集1登录Post登录http://localhost:8088/api/v1/security/loginBodyraw(json){"password":"123456","provider":"db","refresh":true,"username":"admi......
  • TimesURL: 用于通用时间序列表征学习的自监督对比学习《TimesURL: Self-supervised Co
    2024年3月18日,最近有点忙,但是这周四周五都要汇报,不想往后推了,早汇报完早结束,硬着头皮先看这一篇,这篇年前就说要看,还保存了书签,但是一直没看,今天趁着中午的时间看一下。(现在14:01,开始看,我的草稿箱里躺着的18篇草稿,Sorry,以后有空再填坑.)论文:TimesURL:Self-supervisedContrasti......
  • windows系统下使用pip安装 Superset
    windows系统下使用pip安装Superset一安装ANACONDAAnaconda官方网站就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。下载地址:免费下载(anaconda.com)直接点击下一步完成安装二......