直接上代码:
const MAX_COUNT: i32 = 100000;
use std::collections::HashMap;
use std::fs::File;
fn main() {
let name: type = 初始值
let a = 1;
println!("a = {}", a);
let mut b = 3;
b = 2;
println!("b = {}", b);
let b = 1.1;
println!("b = {}",b);
println!("MAX_COUNT = {}",MAX_COUNT);
let bol = true;
println!("bol = {}",bol);
let a = '为';
let cha = 1.1;
let flo = 0.00009;
let i = -12;
let arr = [1,2,3];
let arr1: [u32; 5] = [1,2,3,4,5];
fn show(arr:[u32;3]) {
for i in &arr {
println!("{}", i);
}
}
show(arr);
let yanzu: (i32, f32, char) = (-3, 3.67, '好');
let yanzu = (-3, 3.67, '好');
println!("{}", yanzu.0);
let (x, y, u) = yanzu;
println!("{}", x);
fn other_fn () {
println!("this is function");
}
other_fn();
fn other_fn1 (a: i32, b:u32) {
println!("a ={}, {}",a,b);
}
other_fn1(12,12);
fn other_fn2 (a: i32, b:i32) -> i32{
println!("a ={}, {}",a,b);
return a+b;
}
let b = other_fn2(12,12);
println!("{}",b);
fn ies () {
if true {
println!("if");
} else {
println!("else");
}
}
ies();
let condiction = true;
let y = if condiction {
5
} else {
10
};
println!("y = {}", y);
let mut counter = 0;
loop {
println!("loop is {}", counter);
if counter == 12 {
break;
}
counter = counter + 1;
}
let reault = loop {
counter += 1;
if counter == 20 {
break counter * 2;
}
};
println!("reault = {}",reault);
let mut i = 1;
while i != 10 {
i += 1;
println!("while");
}
let str = String::from("hello");
println!("{}", str);
fn calute (s: &String) -> usize {
s.len()
}
let len = calute(&str);
println!("{}", len);
println!("{}", str);
let str1 = String::from("hello");
let h = &str1[0..3];
let h1 = &str1[0..=3];
let h2 = &str1[..=3];
println!("{}, {}, {}", h, h1, h2);
struct User {
name: String,
count: u64,
active: bool,
}
let xiaoming = User {
name: String::from("xiaoming"),
count: 120,
active: true
};
println!("xiaoming active = {}",xiaoming.active);
let mut xiaohuang = User {
name: String::from("xiaoming"),
count: 120,
active: true
};
xiaohuang.active = false;
println!("{}",xiaohuang.active);
let name = String::from("Hello");
let mut xiaohuangfei = User {
name,
count: 120,
active: true
};
println!("{}",xiaohuangfei.name);
let name1 = String::from("Hello");
let mut xiaohuangfei1 = User {
name: name1,
count: 120,
active: true
};
let user2 = User {
active: false,
..xiaohuangfei1
};
println!("{}", user2.name);
struct Point(i32, i32);
let a = Point(1,1);
println!("{}",a.0);
struct A{};
#[derive(Debug)]
struct Card {
num: i32,
active: bool
}
let xiao = Card {
num: 123,
active: true
};
println!("xiao = {:?}",xiao);
println!("xiao = {:#?}",xiao);
#[derive(Debug)]
struct Dog {
name: String,
}
impl Dog {
fn get_name(&self) -> &str {
&(self.name[..])
}
fn show () {
println!("h h h");
}
}
let dog = Dog {
name: String::from("wangcia"),
};
Dog::show();
println!("{:#?}",dog);
println!("{}", dog.get_name());
enum IpArrs {
V4(String),
V6(String),
}
let i1 = IpArrs::V4(String::from("127.0.0.1"));
let i2 = IpArrs::V6(String::from("127.0.0.1"));
enum Ipaddr {
V4(u8,u8,u8,u8),
}
let v4 = Ipaddr::V4(127,0, 0, 1);
enum Message {
Quit,
Move{x: i32, y: i32},
Write(String),
Change(i32, i32, i32),
}
impl Message {
fn prin(&self) {
match *self {
Message::Quit => println!("n"),
Message::Move{x, y} => println!("{},{}",x, y),
Message::Change(a,b, c) => println!("{},{},{}",a,b,c),
_=>println!("default")
}
}
}
let quit = Message::Quit;
quit.prin();
let move1 = Message::Move { x: 32, y: 32 };
move1.prin();
let chanage = Message::Change(15, 20, 21);
chanage.prin();
let write = Message::Write(String::from("hello pip"));
write.prin();
enum Option<T> {
Some(T),
None
}
let opti = Some(5);
let yu = Some(5);
let mut temp = 0;
match yu {
Some(i) => { temp = i; }
None => { println!("do nothing"); }
}
let sum = 5 + temp;
let mut v: Vec<i32> = Vec::new();
v.push(1);
println!("vector={:?}",v);
let vs = vec![1,2,3];
println!("{:?}", vs);
{
let ve = vec![1,8];
}
let one: &i32 = &vs[0];
println!("{}",*one);
let two: &i32 = &vs[0];
println!("{}",*two);
let vs1 = vec![1,2,3];
match vs1.get(10) {
Some(value) => println!("{}", value),
_=>println!("nono"),
}
let mut v4: Vec<i32> = Vec::new();
v4.push(1);
for i in &v4 {
println!("i = {}",i);
}
for i in &mut v4 {
*i+=1;
println!("{}",i);
}
enum Content {
Text(String),
Float(f32),
Int(i32),
}
let s = vec![
Content::Text(String::from("String")),
Content::Float(0.01),
Content::Int(88),
];
let strr = String::new();
let mut strrrr = String::from("heool");
let s1 = "init string".to_string();
strrrr.push_str("pop");
strrrr = strrrr + "sdsdsd";
strrrr.push('s');
println!("{}",&strrrr);
let ok = String::from("a");
let sh = String::from("b");
let saa = format!("{}-{}",ok,sh);
println!("{}", saa);
let ins = String::from("ssss是");
println!("{}",ins.len());
for c in ins.chars() {
println!("{}",c);
}
for b in ins.bytes() {
println!("{}",b);
}
let mut map :HashMap<String, i32> = HashMap::new();
map.insert(String::from("blue"), 325);
let keys = vec![String::from("yrl"),String::from("uoi")];
let value = vec![10,20];
let map1:HashMap<_,_> = keys.iter().zip(value.iter()).collect();
let k = String::from("yrl");
let rr = map1.get(&k);
println!("rr = {:?}",&rr);
if let Some(v) = map1.get(&k){
println!("v = {:?}",v);
}
match rr {
Some(value) => println!("v = {}", value),
None => println!("none")
}
map.entry(String::from("ssd")).or_insert(3);
let iu =map.entry(String::from("ssd")).or_insert(3);
*iu += 1;
let kse = String::from("ssd");
if let Some(v) = map.get(&kse){
println!("iu = {:?}",v);
}
}