サーバーサイドエンジニアの技術メモあれこれ

調べたことのメモがき。その他雑記もちょろちょろと。ゆるくやってます。

Rustメモ

What is Rust

www.rust-lang.org

メモ

変数宣言パターン

OKな例
// 不変の変数
let _str = String::from("hello");
// 可変の変数(mutを指定してミュータブルにする)
let mut _str = String::from("hello");
// 不変の変数に対する更新NG参照を不変の変数に格納
let _str = String::from("hello");
let _refer = &str;
// 可変の変数に対する更新OK参照を不変の変数に格納
let mut _str = String::from("hello");
let _ref = &mut str;
// 不変の変数に対する更新NG参照を可変の変数に格納
let _str = String::from("hello");
let mut _refer = &str;
// 可変の変数に対する更新NG参照を不変の変数に格納
let mut _str = String::from("hello");
let _refer = &str;
NGな例
// 不変の変数に対する更新OK参照
let _str = String::from("hello");
let _refer = &mut str;

標準入力から文字列を受け取るやり方

use std::io; は前提として

let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();

let vec: Vec<u32> = input
                        .split_whitespace()
                        .map(|n| u32::from_str_radix(n, 10).unwrap())
                        .collect();