LoginSignup
3
1

More than 1 year has passed since last update.

Rust - プレースホルダーについて

Last updated at Posted at 2022-01-27

はじめに

この記事は 脳内メモリが不足している Rinrin が、
学習中に Rust の仕様を忘れたとき用に書いたものだ。
故に 情報が古かったり、間違っている場合もある。
そんな時は言ってくれれば多分直す( 'ω')
Rust の環境構築やプロジェクト作成等については自分で調べてください

目次♪

プレースホルダーについて

狙った位置に文字などを割り込ませられる
中括弧{} で位置を、引数増やして割り込ませたい文字とかを入れる

fn main() {
    println!("あ{}う{}お", "い", "う"); //< あいうえお
    println!("1 {} 3 {} 5", 2, 4); //< 1 2 3 4
}

中括弧内に指数を指定すれば並びも変えられる

同じ指数で複数回指定可能

fn main() {
    println!("A{1}C{0}", "D", "B"); //< ABCD
    println!("贵樣{1}{1}{1}{1}{1}{0}", "!", "ァ"); //< 贵樣ァァァァァ!
}

引数に名前を付けて指定することもできる

fn main() {
    println!(
        "い{ro}は{ni}ほ{he}と", 
        ro="ろ", 
        ni="に", 
        he="へ"
    ); //< いろはにほへと
} 

数値を n進法にフォーマットしたりも

fn main() {
    let int = 14; // 変数int に14を代入
    println!("bin(2進数): {x:b}" ,x=int);
    println!("oct(8進数): {x:o}" ,x=int);
    println!("hex(16進数): {x:x}" ,x=int);
    println!("exp(指数表記): {x:e}" ,x=int);
    println!("HEX(大文字16進数): {x:X}" ,x=int);
    println!("EXP(大文字指数表記): {x:E}" ,x=int);
    println!("井桁を付けると整形: {x:#x}" ,x=int);
}

上を実行すると以下が出力されるはず

bin(2進数): 1110
oct(8進数): 16
hex(16進数): e
exp(指数表記): 1.4e1
HEX(大文字16進数): E
EXP(大文字指数表記): 1.4E1
井桁を付けると整形: 0x3f8

数値の桁をそろえてくれたり

x:<n で x を左寄に配置して n桁になる様に右にて半角空白で拡張
x:>n で x を右寄に配置して n桁になる様に左にて半角空白で拡張
x:^n で x の両端で n桁になる様に均等に半角空白で拡張するが、
n が奇数だった場合 右側の半角空白が1つ多くなる
n の部分に直接数値を書かない場合は n$ の様に記載
また、x:0n の様にすれば純粋に0で n桁にしてくれる(1が01になったり)
この0は他の文字も使用可能。そして>, <, ^などを使いたい場合は0とnの間に配置する

fn main() {
    let x = 1000;
    println!("{:<6}('ω' )", x); //< 1000  ('ω' )
    println!("( 'ω'){:>n$}", x, n=6); //< ( 'ω')  1000
    println!("( 'ω'){:^6}('ω' )", x); //< ( 'ω') 1000 ('ω' )
    println!("( 'ω'){:^7}('ω' )", x); //< ( 'ω') 1000  ('ω' )
    println!("{:06}", 1); //< 000001
    println!("{:优^10}", x); //< 优优优1000优优优
}

小数の桁操作

x:.n で x を小数第n位にまでフォーマットする

fn main() {
    println!("{:.5}", 0.01); //< 0.01000
    println!("{:.1$}", 0.01, 5); //< 0.01000
}

その他プレースホルダーには多くの機能がある
詳しくはこいつを参照

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1