文档章节

rust基础

有力量的神经病
 有力量的神经病
发布于 2016/08/15 23:37
字数 747
阅读 134
收藏 0
点赞 0
评论 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
博文 16
码字总数 9692
作品 0
成都
程序员
在线游戏平台服务器框架--TDEngine

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

匿名 ⋅ 2016/04/08 ⋅ 1

强大的 Rust 还是简单的 Go?我选择了 Go

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

局长 ⋅ 2017/09/18 ⋅ 28

TDEngine 0.1 发布,游戏服务端引擎

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

tickbh ⋅ 2016/04/08 ⋅ 14

Rust基础笔记之浅谈Ownership

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

junanhonglei ⋅ 2016/03/16 ⋅ 0

TDEngine 0.1.1 发布,游戏平台服务端引擎(斗地主)

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

tickbh ⋅ 2016/05/11 ⋅ 7

Rust 在 2017 年的发展主题:提高生产力

Rust 在 2017 年的发展都围绕提高生产力这个主题。从工具到库到文档到核心语言,我们都希望使 Rust 让任务更容易完成。2017年的路线图就是围绕这个意愿开展的,该文章列出了指导 Rust 团队想...

周其 ⋅ 2017/12/24 ⋅ 11

TDEngine 0.1.2 发布,游戏平台服务端引擎

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

tickbh ⋅ 2016/05/24 ⋅ 5

协作翻译 | 一文读懂 Rust 中的错误处理

在本文,我打算为 Rust 中如何处理错误做一个全面论述。不仅如此,我会尽量每次只引入一种错误处理方式,那么在如何将每一种组合到一起的时候,你就可以有一个坚实的实践知识基础。 如果使用...

王练 ⋅ 05/11 ⋅ 0

Rust语言开发基础(三)开发工具攻略

一、Subline Text 3 1. 插件下载: Ctrl+Shift+P 调用命令面板,我们就会找到一些以“Package Control:”开头的命令,找到 Install Package (安装扩展),确定后出现命令行, 输入:Rust ,找...

Robinson_L ⋅ 2015/12/29 ⋅ 8

学会了五种编程语言,再来研究DevOps也不晚

  【IT168 资讯】如何确保我们采用的DevOps能够成功?是否有某些语言非常适合应用于DevOps?今天,我们来看看众多编程语言中,哪个才是最适合DevOps的(顺序与排名无关)。   1. JavaScript...

it168网站 ⋅ 2017/12/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 15分钟前 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 30分钟前 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 今天 ⋅ 8

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部