一:前言,这是Rust基础程序,主要是用来讲解怎么创建分层(类似Java package)的应用;

二:代码实现:

2.1在src下创建main.rs,然后声明main方法,代码如下:

fn main() {
let fruits = ["mango", "apple", "banana", "litchi", "watermelon"];
for f in fruits.iter() {
print!("{} ", f);
}
}

2.1接着我们需要在main里引用一个类似Java aa.bb.Uu的类,并调用它的某个方法(和Java不同的是Rust更像C++/kotlin不是所有方法都必须在类里,“包”中也可以有方法实现)

,步骤如下:在src下创建common目录,在common目录里创建mod.rs(mod.rs是很特殊的文件名字,在里面可以定义属于common“包”[其实叫mod,即module]的方法实现,同时它还负责引出属于common“包”下的其他“子包”;

在mod.rs里添加代码:

// 这里用pub mod的意义在于其他地方比如main.rs里mod common;后可以use common::uks;
pub mod uks; // 这里也可以有方法定义,这样这个方法就是在common这个"包"里【Java概念】
pub fn test() {
println!("hello");
}

注意上面的pub mod uks;很重要,表示uks可以在其他地方通过common mod来引用,而test方法则直接属于common这个mod;

接着在common目录下添加uks.rs,其代码为:

// 默认是私有的,其他module无法访问
pub fn add(a: i64, b: i64) -> i64 {
a + b
}

现在main.rs里就可以使用uks和common的mod了,代码如下:

mod common;
use common::uks::add;

在main方法里就可以直接add(1, 3)来调用了,如果没有用use(use类似静态导入,mod类似普通导入),那么就必须common::uks::add(1, 3)来使用,

如果是use common::uks;那么可以uks::add(1, 3),注意不能use common;因为mod common;已经导入了不能重复导入【但是不能省略mod common;而用use common;也会报错】

创建一个用目录分层的Rust应用的更多相关文章

  1. File 创建一个空目录,创建一个多级目录,删除一个目录

    package seday03; import java.io.File; /** * 创建一个空目录,* @author xingsir*/public class MkDirDemo { publ ...

  2. VsCode+Node的前端环境搭建及其理解并创建一个前端目录

    既然选择了远方,便只顾风雨兼程 __ HANS许 系列:零基础搭建前后端分离项目 系列:零基础搭建前后端分离项目 VsCode VsCode的安装 VSCode中文设置 VsCode 扩展 VsCod ...

  3. iOS 创建一个App目录结构

    Class:存放的是App中所有的模块功能 Base:存放一些基类,比如BaseViewController,BaseModel等,共性直接在基类中去修改 Vendor:三方,因为我的项目中使用coc ...

  4. 利用django创建一个投票网站(六)

    建你的第一个 Django 项目, 第六部分 这一篇从第五部分(zh)结尾的地方继续讲起.再上一节中我们为网络投票程序编写了测试,而现在我们要为它加上样式和图片. 除了服务端生成的 HTML 以外,网 ...

  5. 利用django创建一个投票网站(三)

    创建你的第一个 Django 项目, 第三部分 这一篇从第二部分(zh)结尾的地方继续讲起.我们将继续编写投票应用,并且聚焦于如何创建公用界面--也被称为"视图". 设计哲学 Dj ...

  6. 利用django创建一个投票网站(二)

    创建你的第一个 Django 项目, 第二部分 这一篇从第一部分(zh)结尾的地方继续讲起.本节我们将继续写 Web 投票应用,并主要关注 Django 提供的自动生成的管理页面(admin site ...

  7. 利用django创建一个投票网站(一)

    这是教程的原始链接:http://django-intro-zh.readthedocs.io/zh_CN/latest/part1/ 创建你的第一个 Django 项目, 第一部分 来跟着实际项目学 ...

  8. 使用Maven创建一个Spring MVC Web 项目

    使用Maven创建java web 项目(Spring MVC)用到如下工具: 1.Maven 3.2 2.IntelliJ IDEA 13 3.JDK 1.7 4.Spring 4.1.1 rele ...

  9. AppWidget应用(一)---创建一个appWidget

    appWidget是显示的桌面上的小窗口程序,通过它可以达到用户与程序之间的交互. 下面我们来看下创建一个appWidget的步骤 一.首先在layout文件夹下创建一个appWidget的布局文件a ...

随机推荐

  1. mysql创建账号、授权、数据导出、导入

    1.账号创建及授权 grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant opti ...

  2. 在Android Studio中找不到AppCompatActivity解决方案

    在创建新的.java文件时,要导入父类中的 AppCompatActivity,报错,无法找到这个父类. 解决方案:   1.先找到“project structure”,然后app--Depende ...

  3. kubernetes 1.14安装部署EFK日志收集系统

    简单介绍: EFK 组合插件是k8s项目的一个日志解决方案,它包括三个组件:Elasticsearch, Fluentd, Kibana.相对于ELK这样的架构,k8s官方推行了EFK,可能Fluen ...

  4. LDAP服务端 - 调研

    一.服务端实现 1.OpenLdap 2.ApacheDS 二.OpenLdap 1.https://segmentfault.com/a/1190000014683418 2.https://www ...

  5. 三大框架 之 Spring-Aop

    目录 AOP AOP简介 开发存在 的问题 JDK动态代理 cglib动态代理 Spring的AOP简介 AOP相关术语 Joinpoint:连接点 Pointcut:切入点 Advice:通知 In ...

  6. polarssl rsa & aes 加密与解密<转>

    上周折腾加密与解密,用了openssl, crypto++, polarssl, cyassl, 说起真的让人很沮丧,只有openssl & polarssl两个库的RSA & AES ...

  7. elasticsearch使用BulkProcessor批量入库数据

    在解决es入库问题上,之前使用过rest方式,经过一段时间的测试发现千万级别的数据会存在10至上百条数据的丢失问题, 在需要保证数据的准确性的场景下,rest方式并不能保证结果的准确性,因此采用了el ...

  8. CMU Advanced DB System - Query Optimizer

    Overview Optimizer模块所处在的位置如图, 那么做optimize的目的是, 找出所有‘correct’执行计划中‘cost’最低的 那么这里首先要明确的概念,‘correct’,关系 ...

  9. RPC协议、http协议、https协议的区别

    什么是RPC协议?RPC是一种远程过程调用的协议,使用这种协议向另一台计算机上的程序请求服务,不需要了解底层网络技术的协议. 在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器. HT ...

  10. TensorFlow DeepLab教程初稿-tensorflow gpu安装教程

    TensorFlow DeepLab教程初稿-tensorflow gpu安装教程 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com Summar ...