Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

2022-06-01から1ヶ月間の記事一覧

Rust で HashSet の要素や HashMap のキーに使う型は Eq と Hash トレイトを実装している必要がある

HashSet in std::collections - Rust HashMap in std::collections - Rust 自前の構造体を HashSet の要素にしたり、HashMap のキーに使用するとコンパイルエラーになる。 use std::collections::HashSet; fn main() { { struct MyFoo { x: i32, } let mut h…

WebAssembly と Rust について社内で LT した

内容をメモ WebAssembly とは WebAssembly とは ネイティブに近いパフォーマンスで動く コンパイルして作るバイナリ 第 4 のブラウザ用言語 W3C 勧告として公開 対応ブラウザ 最近のブラウザはすべて対応している(IE もいなくなったので本当にすべて) 作成…

Rust と WebAssembly で ボタンを getElementById したり click 属性をつけたりするサンプルメモ

Rust の WebAssembly で、ボタンを押すと、div#msgdiv にテキストを入れて、window.alert() を実行するサンプルメモ。trunk を使用している。 index.html <html> <head></head> <body> <div id="msgdiv"></div> <input type="button" value="botan" id="foobtn"> </body> </html> Cargo.toml [package] name = "click-test" version = "0.1.0" editio…

Rust の WebAssembly(wasm) の web-sys を使うときは Cargo.toml で features を指定する必要あり

Rust で WebAssembly しようとやってみたら最初でつまづいたのでメモ。Cargo.toml [dependencies] web-sys = "0.3.57"main.rs (trunk 使ってみてるので) pub func main() { let window = web_sys::window().unwrap(); } error[E0425]: cannot find function …

Rust で { と } を表示する

error: invalid format string: expected `'}'`, found `'{'` { hoge } という文字列を println! しようとしたら、エラーになった。 let s = "hoge"; println!("{ {} }", s); error: invalid format string: expected `'}'`, found `'{'` --> src\main.rs:31…

Rust の to_owned() って何

to_owned() https://doc.rust-lang.org/std/borrow/trait.ToOwned.html#tymethod.to_owned &の参照に対して使う 参照元の値をクローンする クローンした上で所有権も新規にする(参照元の方の所有権はそのまま) 例 fn main() { { let s1: &str = "foo"; le…

Rust でブロック内に定義した関数とか構造体とかはそのスコープで閉じる

メモ。 関数とか構造体とかは外側で定義してるイメージだけど、別にどこでも定義できるらしい。 でもスコープが発生するので見えないところからは使えないらしい。 fn main() { { #[derive(Debug)] struct Foo; let foo = Foo {}; println!("{:?}", foo); } …

Rust で配列の要素そのもので配列にアクセスしようとするとエラー

error[E0502]: cannot borrow `v` as immutable because it is also borrowed as mutable エラーが出たのでメモ。やりたいこと。 fn main() { let mut v: Vec<usize> = vec![3, 123, 234, 345, 456, 567]; v[v[0]] *= 100; // 要素 3 を 100 倍する println!("{:?}"</usize>…