文档章节

rust基础

有力量的神经病
 有力量的神经病
发布于 2016/08/15 23:37
字数 747
阅读 136
收藏 0

cargo项目管理工具

cargo是rust的代码组织管理工具,cargo提供了一系列的工具,从项目的建立、构建到测试、运行直至部署,为rust项目的管理提供尽可能完整的手段,同时,与rust语言及其编译器rustc本身的各种特性紧密结合。(摘自RustPrimer)

新建学习基础项目

cargo new first --bin

新建一个名为first的rust 项目,--bin表示就会生成可执行文件

此时cargo会自动为我们生成必须的文件。

变量绑定

在rust中定义变量称之为变量绑定,有些类似于java等的定义变量,语法如下:

let m=5;//
let n:i32=5;//m和n值相等,整数默认为i32类型

assert_eq!(m,n);//判断m、n是否相等

let mut x=10;//x称为可变绑定,上面的m、n成为不可变绑定(类似于Java中的final定义常量)

//m=6;//此时会出错,因为m是不可变绑定,此时可用let mut m=8来重新绑定为可变绑定

Rust内置原生类型

  • 布尔类型:有两个值truefalse
  • 字符类型:表示单个Unicode字符,存储为4个字节。
  • 数值类型:分为有符号整数 (i8i16i32i64isize)、 无符号整数 (u8u16u32u64,usize) 以及浮点数 (f32f64)。
  • 字符串类型:最底层的是不定长类型str,更常用的是字符串切片&str和堆分配字符串String, 其中字符串切片是静态分配的,有固定的大小,并且不可变,而堆分配字符串是可变的。
  • 数组:具有固定大小,并且元素都是同种类型,可表示为[T; N]
  • 切片:引用一个数组的部分数据并且不需要拷贝,可表示为&[T]
  • 元组:具有固定大小的有序列表,每个元素都有自己的类型,通过解构或者索引来获得每个元素的值。
  • 指针:最底层的是裸指针*const T*mut T,但解引用它们是不安全的,必须放到unsafe块里。
  • 函数:具有函数类型的变量实质上是一个函数指针。
  • 元类型:即(),其唯一的值也是()
fn main() {
 
	let m=5;
	let n:i32=5;   
	assert_eq!(m,n);
	println!("Welcome to rust-lang");



	//boolean type
	let t=true;
	let f:bool=false;

	//char type
	let c='c';

	//numeric types
	let x=42;
	let y:u32=123_456;//无符号32位整数
	let z:f64=1.23e+2;//浮点数
	let zero=z.abs_sub(123.4);
	let bin=0b1111_0000;//二进制
	let oct=0o7320_1546;//十进制
	let hex=0xf23a_b049;//16进制

	//arrays and slices
	let a=[0,1,2,3,4];
	let middle=&a[1..4];//数组切片,引用数组的一部分,且不需要复制
	let mut ten_zeros:[i64;10]=[0,10];

	//注意:使用&符号将String类型转换成&str类型很廉价, 但是使用to_string()方法将&str
    //转换到String类型涉及到分配内存, 除非很有必要否则不要这么做。
}

参考:https://rust-china.org/rust-primer/latest/quickstart/primitive-type.html

© 著作权归作者所有

共有 人打赏支持
有力量的神经病
粉丝 5
博文 21
码字总数 10798
作品 0
成都
程序员
Rust 实现的分布式计算框架 - Rain

Rain 是一个 Rust 实现的轻巧且强大的分布式计算框架,适用于处理大规模的基于任务的管道。 Rain 旨在降低分布式计算世界的入门门槛,目的是提供一个轻巧而强大的分布式框架,该框架具有直观...

匿名
07/06
0
0
在线游戏平台服务器框架--TDEngine

tdengine是一个轻量级的为在线游戏服务器打造的框架。他是由Rust为底层,lua为逻辑层的一个框架。框架依赖于数据库Redis及Mysql。 Build tdengine非常简单,动手编译一个试着玩一下是个很好的...

匿名
2016/04/08
2.9K
1
强大的 Rust 还是简单的 Go?我选择了 Go

一名后端开发者讲述了自己如何在 Rust 和 Go 之间做出选择。 “Rust 还是 Go,我该选择哪一个?”是我经常遇到的一个问题。不过我的答案也很简单 —— 选择 Go。 之所以这样选择,不是因为 ...

局长
2017/09/18
5.3K
28
TDEngine 0.1 发布,游戏服务端引擎

TDEngine 0.1 发布了。 本次更新主要的内容有: 1、实现热更新,可在不停机的情况下无缝的更新新的逻辑,并不破坏原有的数据 2、支持控制台模式,可以通过telnet到目标的机器,可以查看各种l...

tickbh
2016/04/08
3.3K
14
Rust基础笔记之浅谈Ownership

写在前面 Ownership System是Rust中最独特和吸引人的特性,Rust也是依靠这个特性来实现他的最大的目标:内存安全,所有Rust的开发者都应该详细了解它。 多么浓厚的翻译味道,的确本人学习Rus...

junanhonglei
2016/03/16
29
0

没有更多内容

加载失败,请刷新页面

加载更多

python:关于读取文件的指定行的问题

先来造一个文件:就叫做 test.txt吧,内容是下面这个样子: 表头1,数据12,数据23,数据34,数据45,数据56,数据67,数据7 那么我们并不打算把这个表头给读出来 怎么办呢? 先来打开文...

Oh_really
28分钟前
1
0
Rails 用现代 Rails 逃离单页面应用 “兔子洞”

在工作共总是觉得turbolinks非常爽,但是却总是被说成是过时的技术,大家都喜欢spa,哪怕不用的spa的人也是禁用掉的多,找不到很好的理由劝说别人使用,这篇文章说的很到位,或者说至少是牛人...

wmzsonic
32分钟前
0
0
Hive 分布式搭建,Spark集成Hive记录

本帖详细介绍搭建步骤,仅仅记录自己搭建过程以及采坑经历。 前提环境: Hadoop集群 版本2.7.2 Spark集群 版本2.1.0 Linux版本 Centos7 准备搭建 MySql版本5.5.61 ,Hive-2.1.0 去官网下载M...

我爱春天的毛毛雨
35分钟前
2
0
打包QML程序

1、windeployqt执行路径(D:\Qt\5.12.0\msvc2017_64\bin)加入到PATH中 2、使用Qt自带的命令行交互 Command 终端(Qt 5.12.0 64-bit for Desktop (MSVC 2017))切换到 Release 编译成功的exe...

渣渣曦
今天
4
0
优秀互联网高级测试工程师应该具备的能力

概述 在之前写的互联网高级测试工程师至少具备的能力一文中,提到了测试工程师至少具备的能力,但是并没有提到优秀测试工程师应该具备的能力,下文简单的谈一谈。当然这些全部都是我的个人理...

Sam哥哥聊技术
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部