フォーマット文字列で変数名をそのまま書けるぞ!
目次
Rust 1.58 の深堀り
いつも丁寧にリリース内容をまとめてくれているので、以下の記事がとても参考になります!
OPTiM TECH BLOG
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAC0AQAAAADNn8i8AAAAAnRSTlMAAHaTzTgAAAAeSURBVFjD7cExAQAAAMKg9U9tDQ+gAAAAAAAAAH4NHNQAARczmc0AAAAASUVORK5CYII=)
![](https://cdn.image.st-hatena.com/image/scale/2559236788f85e4f6557ea9c55f91b48a25a086c/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fo%2Foptim-tech%2F20220113%2F20220113181507.png)
Rust 1.58を早めに深掘り – OPTiM TECH BLOG
フォーマット文字列で変数を直接参照できるようになったRust 1.58の変更点を詳しく紹介します。
フォーマット文字列で変数を直接参照できる
Rust 1.58
format!
やprintln!
などフォーマット系のマクロで変数を直接参照できるようになり、println!("{x}")
と簡単に書くことができます。
fn main() {
let age = 10;
println!("Taro is {age} years old.");
}
Rust 1.57 以前
上記処理は以下のように実装する必要がありました。
fn main() {
let age = 10;
// パターン1
println!("Taro is {} years old.", age);
// パターン2
println!("Taro is {age} years old.", age = age);
}
式を展開できるようになるかも?
ただし指定できるのは識別子のみであり、式を指定することはできません。
https://tech-blog.optim.co.jp/entry/2022/01/14/080000
今後これを行えるようにしたいという議論も進行中です。
近い将来、以下のような文字列操作が可能になるかもしれません。
fn main() {
let age = 10;
println!("Taro is {age * 2} years old.");
}
まとめ
便利になりました!
Rustの進化は目覚ましいので、置いて行かれないようにしないといけませんね。
著:初田直也, 著:山口聖弘, 著:吉川哲史, 著:豊田優貴, 著:松本健太郎, 著:原将己, 著:中村謙弘, 著:フォルシア株式会社
¥1,782 (2025/02/16 03:23時点 | Amazon調べ)
![](https://dottrail.codemountains.org/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
コメント