Rust之字符串,元组,数组,切片,打印优化
[20190417]
fn main() {let t = (1, 'a', false);let f = (2, (1, 'a', false));println!("{} {} {}", t.0, t.1, t.2);println!("{}", f.1); // wrong
}
第二个会出错,因为是一个tuple
,{}
有很多语法细节,比如改成:{:?}
即可。
println!("{:?}", f.1); //(1, 'a', false)
因为没有匹配的display trait
,匹配上即可。
println!("{:?}", f); // (2, (1, 'a', false))
也可以。
下面这样会报错:
fn main() {let t = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);println!("{:?}", t);
}
如果tuple只是1到6则不会出错。
WHY???
数组的用法
fn main() {let xs: [i32; 5] = [4,5,6,7,8];println!("{}", xs[0]);
}
注意数组类型的标定方法:let xs: [i32; 5]
第一个参数表示类型,第二个表示个数。
数组的长度,数组大小
fn main() {let xs: [i32; 5] = [4,5,6,7,8];println!("{} {} {}", xs[0], xs.len(), mem::size_of_val(&xs)); // 4 5 20
}
20B。
注意与内存相关的操作是用:mem
包。
切片操作:
let ys = &xs[2..4];
println!("{:?}", ys);
字符串
fn main() {let s = "String"; // &strlet ss = String::from("String!"); // std::string::String typeprintln!("{}", s);println!("{}", ss[0]); // wrong
}
注意两种写法都不允许index.
转化为数组类型:
let s = "String".to_string();
数组切片
fn main() {let s = "String".to_string(); // ^strlet ss = String::from("String!"); // std::string::String typelet slice = &ss[0..4];println!("{}", slice); // Stri
}
字符串
字符串连接
fn main() {let h = String::from("hello, ");let w = String::from("world!");let s = h + &w;println!("{}", s);
}
注意,后面的要带&
,前面的不用带。其他都是错误的情况。
如果是多个字符串拼接,后面的也一样是加上&
符号:
fn main() {let h = String::from("hello, ");let w = String::from("world!");let v = String::from(" Here I am..");let s = h + &w + &v;println!("{}", s);
}
空tuple
fn main() {// empty tuplelet t = ();
}
https://www.youtube.com/watch?v=yP8N3dd_Kd4&list=PLJbE2Yu2zumDF6BX6_RdPisRVHgzV02NW&index=2
2019.10 Update:
第一届PAT算法直播课培训班招募帖,欢迎点击查看详情、
END.
Rust之字符串,元组,数组,切片,打印优化相关推荐
- scala-模式匹配(字符串、数组、元组、集合、类、偏函数)
scala-模式匹配(字符串.数组.元组.集合.类.偏函数) Scala 提供了强大的模式匹配机制,应用也非常广泛. 一个模式匹配包含了一系列备选项,每个都开始于关键字 case.每个备选项都包含了一 ...
- python3 字符串转数组 数组转字符串 切片操作
1.数组转字符串 #方法1 arr = ['a','b'] str1 = ''.join(arr)#方法2 arr = [1,2,3] #str = ''.join(str(i) for i in a ...
- ruby 将字符串转为数组_Ruby程序将数组打印为字符串
ruby 将字符串转为数组 将数组打印为字符串 (Printing an array as string) Given an array and we have to print it as a st ...
- Golang 基本类型数组切片 拼成 字符串 方法
1.对于字符串型数组切片 import "fmt"func main() {s:=[]string{"1","3","jjj&qu ...
- Rus入门到放弃——字符串与字符切片
一.字符串定义 1.Rust的字符串常常指的是String,str,还是一种是字符串字面值.str是字符切片,通常以&str的方式使用. //Stringlet r_string:String ...
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- 算法练习day15——190403(简介、求n!、汉诺塔、打印字符串的子序列、打印字符串的全排列、母牛生小牛、最小路径和、累加和是否达到给定值)
1. 简介 动态规划是为了优化暴力尝试的. 2. 求n! 2.1 一般思路 public static long getFactorial2(int n) {long result = 1L;for ...
- A01_[NumPy中文网]数组基础(创建数组,多维数组切片,数组属性)、使用数组(基本操作符,数组特殊运算符)、索引(花式索引,布尔索引,缺省索引)
NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在 ...
- [翻译] NumSharp的数组切片功能 [:]
原文地址:https://medium.com/scisharp/slicing-in-numsharp-e56c46826630 翻译初稿(英文水平有限,请多包涵): 由于Numsharp新推出了数 ...
最新文章
- 无刷新提交表单(非Ajax实现)
- Pycharm如何设置自定义背景颜色
- zbg是什么意思_zbg的含义,zbg是什么的缩写,zbg的词语,zbg代表的意思
- 【项目管理】项目问题应对思路
- android 标题栏颜色渐变和阴影,ScrollView上下滑动监听,及判断scrollView是否滚动到底部
- 面试之JSP九大内置对象和JSP四大作用域
- python语言的数据类型图解_Python基础——数据类型(图解+实例,非常详细!)
- 如何在面试时搞定 Java 虚拟机?
- python教程五(imput和while)
- sql: expected 0 arguments, got 1
- python中去除字符串中首尾空格的函数_Python字符串的首尾空格如何去掉?
- 如何实现输入银行卡号每隔四位自动添加一个空格的功能?
- 【SSL】2022.5.2 1125.集合
- 固态硬盘和机械硬盘的区别
- 你知道“晚安”是什么意思么?
- Selective Search原理及实现
- AndroidStudio单元测试——instrumentation
- Zephyr UART
- 简易漫画网站搭建-漫画喵Server版
- RGB颜色转HEX进制与单位换算
热门文章
- atmega8a如何烧写程序_快捷又安全!如何利用芯片内部Bootloader烧写程序?
- java怎么释放分配的内存,linux 内存的分配和释放,linux分配释放
- linux3.10高端内存,Linux内存管理之高端内存映射
- 安卓手机ip修改器_亚马逊手机端?电脑端?谁是测评一哥
- 不同网段的局域网怎么互通_智能化工程中,局域网IP地址不够用怎么解决?
- 环回测试能够提供什么信息_以太网测试仪的主要功能有哪些?
- SciPy 积分 | Python技能树征题
- 使用Julia进行图像处理--JuliaImages介绍与基础使用
- java追加到文件末尾_Java追加到文件
- python冒泡循环示例_Python for循环示例