![Scala 3 のマクロを使って Minecraft のプロトコルデコーダを自動導出する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/f904434c7d0abcd17cad95aa64dbd5c251211bef/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9U2NhbGElMjAzJTIwJUUzJTgxJUFFJUUzJTgzJTlFJUUzJTgyJUFGJUUzJTgzJUFEJUUzJTgyJTkyJUU0JUJEJUJGJUUzJTgxJUEzJUUzJTgxJUE2JTIwTWluZWNyYWZ0JTIwJUUzJTgxJUFFJUUzJTgzJTk3JUUzJTgzJUFEJUUzJTgzJTg4JUUzJTgyJUIzJUUzJTgzJUFCJUUzJTgzJTg3JUUzJTgyJUIzJUUzJTgzJUJDJUUzJTgzJTgwJUUzJTgyJTkyJUU4JTg3JUFBJUU1JThCJTk1JUU1JUIwJThFJUU1JTg3JUJBJUUzJTgxJTk5JUUzJTgyJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04ZjZkNGY1MzYwM2M3ZjVjZjhkNWI4ODgzYWQ4ZjVjZg%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBLb3J5X18zJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04ZmI5MzcyOWJkMmIxNDY2OWFjYTUzYmIxMWU3MzRkMA%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Debee9049a1cf85bcc5e2166b09ea848a)
Procedural Macros (and custom Derive) The first edition of the book is no longer distributed with Rust's documentation. If you came here via a link or web search, you may want to check out the current version of the book instead. If you have an internet connection, you can find a copy distributed with Rust 1.30.
概要: Rustマクロは2つの意味で衛生的である。その衛生性の説明とともに、それを実現するためのコンパイラの仕組みを説明する。 Rustマクロの2つの衛生性 Rustマクロ (ja) は次の2つの意味で衛生的(hygienic; 健全ともいう)である。 マクロ内で導入される変数名と、マクロ呼び出し側の変数名が衝突しない。(Lispマクロの意味での衛生性) 構文の優先順位の違いによる非直感的な挙動が発生しない。 この記事では、識別子に関する衛生性を説明する。(構文の優先度に関する衛生性については次記事を参照) 識別子に関する衛生性とは 次のようなプログラムが直感的な動作をするのが、識別子に関する衛生性である。 macro_rules! copy_swap { ($x:expr, $y:expr) => {{ let t = $x; $x = $y; $y = t; }}; } fn main
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く