- Rust part8
322 :デフォルトの名無しさん[sage]:2020/03/30(月) 04:01:22.73 ID:/1SwYHDd - >>318が書いてるの合ってると思うけど?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=6d886f2d3b944871c18856f0e19da71c iterがshared referenceをイテレートするから パターンマッチで`&`を1枚剥がした型にして使ってる for &i in iterと同じ
|
- Rust part8
325 :デフォルトの名無しさん[sage]:2020/03/30(月) 11:38:27.40 ID:/1SwYHDd - >>323
左辺に代入する時にパターンマッチ使ってDestructuringしてる 例えばyが&i32ならxはi32になる let i = 1; let &i = i; これがコンパイル取らないのは 右辺がintegerで左辺がreferenceを要求しててマッチしないから let i:i32 = 1; let i = &i; let &i = i; let i:() = i; ↑こうやって試せば3行目の&iへの代入でiが&i32じゃなくi32になってるのが分かる https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=1d23370e99b388e2205c43e863885315
|
- Rust part8
328 :デフォルトの名無しさん[sage]:2020/03/30(月) 15:23:14.22 ID:/1SwYHDd - 1.38からはstd::any::type_nameがstabilizeされてるので
エラーメッセージやnightly使わずに変数の型をprintして確認できるみたい (consumeしないようにreferenceで渡すから少し分かりにくいかもだけど) fn type_of<T>(_: &T) -> &str { std::any::type_name::<T>() } fn main() { let i = 1; let i = &i; let &i = i; println!("{}", type_of(&i)); } type_name_of_valってのも追加されてるけど こっちはまだstabilizeされてない
|
- Rust part8
330 :デフォルトの名無しさん[sage]:2020/03/30(月) 18:21:13.55 ID:/1SwYHDd - >>329
聞く前に試せばわかるよね
|
- Kotlin 6
912 :デフォルトの名無しさん[sage]:2020/03/30(月) 18:40:18.84 ID:/1SwYHDd - 自分にとってどういうメリットがあるのかと
そのメリットが既存のものを捨てて乗り換えるコストを上回りそうかどうかという 2点をクリアしないと普通の人は新しいものを導入しようって気持ちにはならない 2つとも個々の状況によるものだから 現状の問題点や比較対象無しに聞いてもフワッとしたものしか返ってこないと思う
|