公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part19
https://mevius.5ch.net/test/read.cgi/tech/1673926892/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part20
■ このスレッドは過去ログ倉庫に格納されています
2023/03/03(金) 00:45:28.73ID:vTVY069B
2023/03/09(木) 09:41:31.57ID:5eT48dzr
本家にある程度追いついてて誤訳があるとか未訳があるなら貢献しやすいけどそうじゃないからなぁ
まずはそこまでメンテナー側でやってくれたら貢献する人も現れるんじゃない?
まずはそこまでメンテナー側でやってくれたら貢献する人も現れるんじゃない?
2023/03/09(木) 09:42:37.79ID:ch2FekEs
>>84
草
草
2023/03/09(木) 09:51:30.09ID:MrYHSR72
Rustアンチは具体的に日本語版Bookのどの章のどの節にどういう問題があって改善案がどうなのかを言えない
RustアンチはRustやその普及を潰すことだけを目標にしている
RustアンチはRustやその普及を潰すことだけを目標にしている
2023/03/09(木) 09:56:19.19ID:5eT48dzr
2023/03/09(木) 09:56:38.71ID:bUyZbGMm
2023/03/09(木) 10:05:17.42ID:DF6AT3du
Rustコミュニティに貢献しても
非公式翻訳版の品質改善のために
PR出さずに批判するやつは全員アンチ扱い
非公式翻訳版の品質改善のために
PR出さずに批判するやつは全員アンチ扱い
2023/03/09(木) 10:07:21.23ID:fiidGuJR
>>89
オジ恥
オジ恥
2023/03/09(木) 10:20:37.62ID:5eT48dzr
>>92
事実に対して反論できず捨て台詞を吐くだけなら何も書かないほうがいいと思います
事実に対して反論できず捨て台詞を吐くだけなら何も書かないほうがいいと思います
2023/03/09(木) 10:26:46.29ID:0ZUHbZyh
2023/03/09(木) 10:39:22.78ID:JRh3xELi
もしかしてforkしてブランチ切る程度のこともやってないわけ?
ちょっと信じられないんだが
ちょっと信じられないんだが
2023/03/09(木) 10:45:17.46ID:dzdLgXqT
>>95
プルリク出しても無視されることが分かってるのに修正する気になるわけないじゃん
プルリク出しても無視されることが分かってるのに修正する気になるわけないじゃん
2023/03/09(木) 10:51:11.72ID:tzQKIk8q
日本語版には問題があるから英語版を使ったほうがいいという意見に対して
批判するならイシューやプルリク出せというのは論点のすり替え
批判するならイシューやプルリク出せというのは論点のすり替え
2023/03/09(木) 10:57:51.77ID:Nh0+4dpq
日本語版を潰すことだけに力を入れてるのかー
マジでアンチじゃん
マジでアンチじゃん
2023/03/09(木) 11:02:16.65ID:ehuwCZc+
全員単発
応仁の乱
応仁の乱
100デフォルトの名無しさん
2023/03/09(木) 11:02:36.11ID:5eT48dzr 問題点・改善点をあげてもアンチ乙で片付けられるんだから無敵だな
101デフォルトの名無しさん
2023/03/09(木) 11:36:59.36ID:I6UUv7Kk102デフォルトの名無しさん
2023/03/09(木) 11:41:54.63ID:vunFCsf3 まぁ実際のところ日本語版を読みたい初心者がこんなスレに来るわけないし
このスレのローカルルールとしては>>37でいいと思うけどな
もし日本語版を本気でどうにかしたい人がいるならその議論はzuilpなりGitHubのissueでやればいい
このスレのローカルルールとしては>>37でいいと思うけどな
もし日本語版を本気でどうにかしたい人がいるならその議論はzuilpなりGitHubのissueでやればいい
103デフォルトの名無しさん
2023/03/09(木) 11:59:25.10ID:IPNUA449104デフォルトの名無しさん
2023/03/09(木) 11:59:38.63ID:Js3muVMH10596,103
2023/03/09(木) 12:07:13.82ID:NxdTjqu4 もしもしはすぐID変わるからダメだな
これじゃIDコロコロするやつと変わんねぇよ
これじゃIDコロコロするやつと変わんねぇよ
106デフォルトの名無しさん
2023/03/09(木) 12:23:44.08ID:WMBmvI2V107デフォルトの名無しさん
2023/03/09(木) 12:53:07.30ID:vunFCsf3108デフォルトの名無しさん
2023/03/09(木) 13:38:49.60ID:tfi/zejU >>102
同意
同意
109デフォルトの名無しさん
2023/03/09(木) 13:56:08.35ID:qMTKidpI 5chの1スレで扱わなくなると殲滅されてしまうよう物なら
近いうちに自然淘汰されるだけだから
ここでは扱わないのが正解ということになる
近いうちに自然淘汰されるだけだから
ここでは扱わないのが正解ということになる
110デフォルトの名無しさん
2023/03/09(木) 14:02:00.14ID:KrFX8l8a 傍から見てるだけだけどさ
わざわざ日本語版を排除しようというのはアンチにしか生じない動機・感情よね
わざわざ日本語版を排除しようというのはアンチにしか生じない動機・感情よね
111デフォルトの名無しさん
2023/03/09(木) 14:10:10.57ID:WYfWQgCO 不正確なもんは排除しとくほうがマシ
それを許して欲しいと言う甘えは通用しない
所有権の複製とかいう用語が世間で通用しないのと同じ
それを許して欲しいと言う甘えは通用しない
所有権の複製とかいう用語が世間で通用しないのと同じ
112デフォルトの名無しさん
2023/03/09(木) 14:12:34.91ID:za1QZKNx 更新が英語版のmainに追い付いたらテンプレに戻すという条件付き除外措置なら誰も文句無いですか?
113デフォルトの名無しさん
2023/03/09(木) 14:13:47.86ID:KrFX8l8a 日本語版で不正確なところはどこなの?
所有権??
所有権??
114デフォルトの名無しさん
2023/03/09(木) 14:16:43.77ID:lc0skjdv 総務省の公文書のことか
115デフォルトの名無しさん
2023/03/09(木) 14:47:46.87ID:WYfWQgCO Rustアンチっていう表現がそもそも疑問なんよね
単にここじゃあ複オジが馬鹿にされてたり
rust-jpに疑問が持たれてたりするだけであって
それがなぜだか
ある人にとっては「Rustアンチ」ってことにすり替わっちゃう
単にここじゃあ複オジが馬鹿にされてたり
rust-jpに疑問が持たれてたりするだけであって
それがなぜだか
ある人にとっては「Rustアンチ」ってことにすり替わっちゃう
116デフォルトの名無しさん
2023/03/09(木) 14:50:24.91ID:TbSLyHqM117デフォルトの名無しさん
2023/03/09(木) 14:51:04.12ID:yQuaEoeh cargoを使用していると、過去のクレートのキャッシュ?なのかなんなのかわからないものがどんどん溜まっていってしまいます
これって使い続けるとどこまでも増えていってしまうのですか?何か容量を抑える策はあるのでしょうか?
SSDがしょぼいので気になってしまいます
これって使い続けるとどこまでも増えていってしまうのですか?何か容量を抑える策はあるのでしょうか?
SSDがしょぼいので気になってしまいます
118デフォルトの名無しさん
2023/03/09(木) 14:52:40.57ID:5eT48dzr >>117
cargo clean
cargo clean
119デフォルトの名無しさん
2023/03/09(木) 15:28:35.84ID:SZrfwfYj 会話や議論のベースとするには信頼が置けないというのが最大の理由でしょ
だからこのスレでは信頼のおける公式The Bookを使うローカルルールにするというだけのこと
日本語版の問題箇所を一つ一つ具体的にあげて改善していくためのスレじゃないんだからそれをやりたい人は>>102が言うようにzuilpなりGitHubでやるのが適切
だからこのスレでは信頼のおける公式The Bookを使うローカルルールにするというだけのこと
日本語版の問題箇所を一つ一つ具体的にあげて改善していくためのスレじゃないんだからそれをやりたい人は>>102が言うようにzuilpなりGitHubでやるのが適切
120デフォルトの名無しさん
2023/03/09(木) 15:45:47.39ID:hrQLf9QV アンチというレッテル貼りしてるだけの人の動機は何なんだろう?
121デフォルトの名無しさん
2023/03/09(木) 15:53:09.08ID:RjLT18Ud122デフォルトの名無しさん
2023/03/09(木) 16:11:36.62ID:od/fqKtF バカが2人に増えたね
信者複製おじさんと謎のrust-jp陰謀論おじさん
地獄
信者複製おじさんと謎のrust-jp陰謀論おじさん
地獄
123デフォルトの名無しさん
2023/03/09(木) 18:38:23.80ID:wqVFkatU Bookの日本語版を一通り読んでみたけど特に間違ったことはなさげ
訳語は一部意見割れるかもしれないけど不可はない感じ
ネット上の日本語のRust入門としてベストじゃないかな
訳語は一部意見割れるかもしれないけど不可はない感じ
ネット上の日本語のRust入門としてベストじゃないかな
124デフォルトの名無しさん
2023/03/09(木) 18:53:24.39ID:1oUy2fzR え、内容が古いことは無視ですか?
125デフォルトの名無しさん
2023/03/09(木) 19:03:49.80ID:wqVFkatU なにか古くて間違ってるようなことなかったと思うよ
126デフォルトの名無しさん
2023/03/09(木) 20:59:36.65ID:5eT48dzr127デフォルトの名無しさん
2023/03/09(木) 22:00:09.63ID:TpJxaXq0128デフォルトの名無しさん
2023/03/09(木) 22:25:18.34ID:5eT48dzr >>127
Box 使用箇所は本家では直ってるところだからここだけ言ってもしょうがないよ
> 間違ってるから優先して直してって言えば対応してくれる
issue,pr は何個かあるけどどれも放置だから無駄だよ
Box 使用箇所は本家では直ってるところだからここだけ言ってもしょうがないよ
> 間違ってるから優先して直してって言えば対応してくれる
issue,pr は何個かあるけどどれも放置だから無駄だよ
129デフォルトの名無しさん
2023/03/09(木) 22:28:14.00ID:Qg5Vw7uS130デフォルトの名無しさん
2023/03/09(木) 23:01:25.11ID:bker4XmI じゃスルーしてたlet-else話でもするか
>>19のリンクに書いてあるlet-elseのリファクタリングってあり?
Afterでもダメってほどじゃないが俺はBeforeのほうがいいように思える
//Before
pub async fn close(&mut self) -> Result<()> {
if let Some(mut file) = self.file.take() {
debug!("File {} closed", self.filename());
file.flush().await?;
}
Ok(())
}
//After
pub async fn close(&mut self) -> Result<()> {
let Some(mut file) = self.file.take() else {
return Ok(());
};
debug!("File {} closed", self.filename());
file.flush().await
}
>>19のリンクに書いてあるlet-elseのリファクタリングってあり?
Afterでもダメってほどじゃないが俺はBeforeのほうがいいように思える
//Before
pub async fn close(&mut self) -> Result<()> {
if let Some(mut file) = self.file.take() {
debug!("File {} closed", self.filename());
file.flush().await?;
}
Ok(())
}
//After
pub async fn close(&mut self) -> Result<()> {
let Some(mut file) = self.file.take() else {
return Ok(());
};
debug!("File {} closed", self.filename());
file.flush().await
}
131デフォルトの名無しさん
2023/03/09(木) 23:19:16.56ID:17jElPHd132デフォルトの名無しさん
2023/03/10(金) 07:39:28.49ID:eGAweG+/133デフォルトの名無しさん
2023/03/10(金) 12:26:56.89ID:5qa3scwI134デフォルトの名無しさん
2023/03/10(金) 13:39:34.28ID:YUaQrZ1H >>130
その2つならif letバージョンの方が読みやすいね
その2つならif letバージョンの方が読みやすいね
135デフォルトの名無しさん
2023/03/10(金) 17:33:37.91ID:THb1tZPF >>130
前者だな
Okでも違う値を返すようになったりネストが深くなったりした段階でリファクタリングを考慮すれば十分
その例ではtake、flush、dropの一連のつながりを切るほどのメリットが全くない
あと後者はfile.flush.await.into()にする必要があるかもしれない
前者だな
Okでも違う値を返すようになったりネストが深くなったりした段階でリファクタリングを考慮すれば十分
その例ではtake、flush、dropの一連のつながりを切るほどのメリットが全くない
あと後者はfile.flush.await.into()にする必要があるかもしれない
136デフォルトの名無しさん
2023/03/10(金) 17:46:09.19ID:Lf3CpR6K137はちみつ餃子 ◆8X2XSCHEME
2023/03/10(金) 17:46:47.36ID:wtzqTKjF >>130
私も前者だと思う。
見通しが特に悪くなるほど複雑な場合でないならやろうとしていることがそのままコードに表れているほうが良くて、
前者のほうが何をやろうとしているのかスッと読める感じがする。
私も前者だと思う。
見通しが特に悪くなるほど複雑な場合でないならやろうとしていることがそのままコードに表れているほうが良くて、
前者のほうが何をやろうとしているのかスッと読める感じがする。
138デフォルトの名無しさん
2023/03/10(金) 18:03:17.42ID:Qo+lY2qI139デフォルトの名無しさん
2023/03/10(金) 19:08:36.07ID:HKUOk1Tv >>138
場面に応じてどちらが向いているのか変わるから場面がわかる特定の例で比較することに意味があるのでは?
場面に応じてどちらが向いているのか変わるから場面がわかる特定の例で比較することに意味があるのでは?
140デフォルトの名無しさん
2023/03/10(金) 19:13:36.55ID:Qo+lY2qI >>139
返り値がResult<()>でelse時にErrではなくOk(())という極めて特殊な偏った例になんの意味があるんだ?
返り値がResult<()>でelse時にErrではなくOk(())という極めて特殊な偏った例になんの意味があるんだ?
141デフォルトの名無しさん
2023/03/10(金) 19:17:05.20ID:ha1WEkSQ 意味の有る無しを断じるあたり幼稚やな
周り見てご覧
キミ以外はそんなとこに拘っとらんやろ?
周り見てご覧
キミ以外はそんなとこに拘っとらんやろ?
142デフォルトの名無しさん
2023/03/10(金) 19:36:05.08ID:YsUJsRqF143デフォルトの名無しさん
2023/03/10(金) 19:40:18.95ID:F+OjF9fC 好きな方使ってろバカども
前スレそれで使い潰してまだ反省してねえのか
前スレそれで使い潰してまだ反省してねえのか
144デフォルトの名無しさん
2023/03/10(金) 20:24:59.10ID:7c0jaWrI145デフォルトの名無しさん
2023/03/10(金) 21:43:27.35ID:+jgRtbOv 現在のIT業界に「代替メモリレイアウト」という概念はありますか?
146130
2023/03/10(金) 22:22:59.62ID:IYh2ezPU147デフォルトの名無しさん
2023/03/10(金) 22:39:57.98ID:IYh2ezPU148デフォルトの名無しさん
2023/03/10(金) 23:34:37.12ID:/vLExm3P 好きにしたらええ
それより前スレ埋めない?
それより前スレ埋めない?
149デフォルトの名無しさん
2023/03/10(金) 23:46:20.34ID:Ug/D0/8N >>145
「代替メモリレイアウト」という概念は聞いたことがないが悪魔の証明は無理なのでそういう概念がある可能性を完全に否定することはできない
非公式の日本語翻訳で使われてる用語みたいだけどこのスレで質問する際は公式のドキュメント(英語)を参照するようにしてね
「代替メモリレイアウト」という概念は聞いたことがないが悪魔の証明は無理なのでそういう概念がある可能性を完全に否定することはできない
非公式の日本語翻訳で使われてる用語みたいだけどこのスレで質問する際は公式のドキュメント(英語)を参照するようにしてね
150デフォルトの名無しさん
2023/03/10(金) 23:54:51.68ID:0dyEfhS9 if letを使うかlet elseを使うかはケースバイケースでどちらもありうるのだから揉めるようなことではないと思うんだよな
let elseは要らないから削除せよ!と言ってた人はここを荒らすためだけに言ってただけだと思うし
let elseは要らないから削除せよ!と言ってた人はここを荒らすためだけに言ってただけだと思うし
151デフォルトの名無しさん
2023/03/11(土) 00:35:13.78ID:fYMzQaF5 >>150
ケースバイケースだからこそ具体的な特定のケースを例にどちらがいいかを話してるんだろ
ケースバイケースだからこそ具体的な特定のケースを例にどちらがいいかを話してるんだろ
152デフォルトの名無しさん
2023/03/11(土) 00:54:45.06ID:48Pa/Qcy Rust標準ライブラリのソースを見るとよくわかるよ
let else構文はもちろん使われまくっている
可読性が良くなるからね
let else構文はもちろん使われまくっている
可読性が良くなるからね
153デフォルトの名無しさん
2023/03/11(土) 06:31:08.87ID:nd+w7sZp インストールでつまずいたのでチラ裏させてくれ
サンプルプログラムをコンパイルしたら`link.exe` not foundでコンパイルできなかった。
原因は、Build Tools for Visual Studio 2022をインストールしてしまったこと、アンインストールして
Build Tools for Visual Studio 2019をインストールしてコンパイルできた。
サンプルプログラムをコンパイルしたら`link.exe` not foundでコンパイルできなかった。
原因は、Build Tools for Visual Studio 2022をインストールしてしまったこと、アンインストールして
Build Tools for Visual Studio 2019をインストールしてコンパイルできた。
154デフォルトの名無しさん
2023/03/11(土) 11:07:27.22ID:ShQc/Olf 相も変わらず1人だけズレてるな
155デフォルトの名無しさん
2023/03/11(土) 11:07:29.53ID:phgAMXMr156デフォルトの名無しさん
2023/03/11(土) 12:18:40.44ID:JdznY9pT let-elseはパターンに合致しないと処理を継続できない場合に早期離脱(return、break、etc.)するための構文でしょ
それ以外でも使えるだろうけど逆に可読性が落ちそう
従来の言語で
if (nullable_obj == null) { continue; } // この行を書き忘れるとえらいことになる
nullable_obj.do_something();
...
みたいに書ける処理を今までのRustだと
if let Some(obj) = nullable_obj {
obj.do_something();
...
} else { // ループの末尾ならここは不要
continue;
}
か無理やりunwrapして
if nullable_obj.is_none() { continue; } // この行を書き忘れるとえらいことになる
let obj = nullable_obj.unwrap();
obj.do_something();
...
みたいに書くしかなかったけど、let-elseを使うと従来の言語に近い形で書けるようになる
let Some(obj) = nullable_obj else { continue; }; // この行を書き忘れることはできない
obj.do_something();
...
returnだと?演算子で十分な場合もあるだろうから敢えてcontinueにした
それ以外でも使えるだろうけど逆に可読性が落ちそう
従来の言語で
if (nullable_obj == null) { continue; } // この行を書き忘れるとえらいことになる
nullable_obj.do_something();
...
みたいに書ける処理を今までのRustだと
if let Some(obj) = nullable_obj {
obj.do_something();
...
} else { // ループの末尾ならここは不要
continue;
}
か無理やりunwrapして
if nullable_obj.is_none() { continue; } // この行を書き忘れるとえらいことになる
let obj = nullable_obj.unwrap();
obj.do_something();
...
みたいに書くしかなかったけど、let-elseを使うと従来の言語に近い形で書けるようになる
let Some(obj) = nullable_obj else { continue; }; // この行を書き忘れることはできない
obj.do_something();
...
returnだと?演算子で十分な場合もあるだろうから敢えてcontinueにした
157デフォルトの名無しさん
2023/03/11(土) 12:36:22.58ID:GtLfWJGz let elseはcontinueでもbreakでもreturnでもpanicでも!なら何でも使えるし使われている
returnの時にErr返しなら?を使ってもよいが
.ok_or_else(|| Error)?; とするか
elseでreturnするか
どちらが見やすいかは意見が別れそうだ
returnの時にErr返しなら?を使ってもよいが
.ok_or_else(|| Error)?; とするか
elseでreturnするか
どちらが見やすいかは意見が別れそうだ
158デフォルトの名無しさん
2023/03/11(土) 12:39:50.82ID:WrUJ3YdB Rustに限った話ではないがリファクタリングの良し悪しを判断するためには該当箇所を含む関数の全容(特に関数シグニチャ)とその関数を呼び出すコード例が最低限必要
関数シグニチャも呼び出すコードもない例では話にならない
呼び出し側が絶対変更できない前提なら前者だけでもいい場合があるが往々にして部分最適になりがち
>>130の例でも呼び出す側を考慮するとまた違った選択肢が見えてくる
関数シグニチャも呼び出すコードもない例では話にならない
呼び出し側が絶対変更できない前提なら前者だけでもいい場合があるが往々にして部分最適になりがち
>>130の例でも呼び出す側を考慮するとまた違った選択肢が見えてくる
159デフォルトの名無しさん
2023/03/11(土) 12:48:32.01ID:Us0DtIzW コーディング規約で早期リターンが推奨される開発現場であれば
その規約に準拠した表現が書きやすくなったのは良いこと
つうかそのつもりで読んでたから後者のほうが読みやすかったわ
その規約に準拠した表現が書きやすくなったのは良いこと
つうかそのつもりで読んでたから後者のほうが読みやすかったわ
160デフォルトの名無しさん
2023/03/11(土) 13:41:29.57ID:+LV0PjS3161デフォルトの名無しさん
2023/03/11(土) 14:09:20.55ID:zozTFx1B 隔離スレでやれ
162デフォルトの名無しさん
2023/03/11(土) 20:53:29.08ID:YsMYadXT https://qiita.com/namn1125/items/ccedf9cc06b8cef71557#let-else文のユースケース
この人が書いてるように?演算子のイディオムを踏襲してればlet-elseの出番は多くはない
逆に本来使うべきでないところでも乱用されやすいから注意が必要
この人が書いてるように?演算子のイディオムを踏襲してればlet-elseの出番は多くはない
逆に本来使うべきでないところでも乱用されやすいから注意が必要
163デフォルトの名無しさん
2023/03/11(土) 23:05:55.56ID:ChsfUoNW >>159
多くのところで言語に関わらずでifネストを深くせずに早期離脱をすることが好まれる
Rustではif let時にそれができなかったためlet else導入まではこうなってしまっていた
let foo = if let Some(foo) {
foo
} else {
(早期離脱前の処理があればここ)
早期離脱
}
これはfooが三重に冗長で不格好
そのためlet else以前は早期離脱をあきらめる本末転倒なことも起きていた
具体的にlet elseが適している早期離脱は「範囲」が広い
・break
・continue
・エラー以外のreturn
・早期離脱前の処理があるエラーreturn
>>162
?が使える「範囲」はlet else より狭く早期離脱前の処理がないエラーreturnのみ
もちろん「量」は多いけどね
多くのところで言語に関わらずでifネストを深くせずに早期離脱をすることが好まれる
Rustではif let時にそれができなかったためlet else導入まではこうなってしまっていた
let foo = if let Some(foo) {
foo
} else {
(早期離脱前の処理があればここ)
早期離脱
}
これはfooが三重に冗長で不格好
そのためlet else以前は早期離脱をあきらめる本末転倒なことも起きていた
具体的にlet elseが適している早期離脱は「範囲」が広い
・break
・continue
・エラー以外のreturn
・早期離脱前の処理があるエラーreturn
>>162
?が使える「範囲」はlet else より狭く早期離脱前の処理がないエラーreturnのみ
もちろん「量」は多いけどね
164デフォルトの名無しさん
2023/03/12(日) 11:57:58.73ID:HouQiurI カルパッチョ
165デフォルトの名無しさん
2023/03/12(日) 12:41:14.42ID:UHnNkdpy 初見
VS code使い始めたんだが、カーソル移動系のショートカットキーの編集ってできないのか?
さくらEditorみたいにカーソル移動・ドラッグ編集を全部キーボードでやりたいんだが
VS code使い始めたんだが、カーソル移動系のショートカットキーの編集ってできないのか?
さくらEditorみたいにカーソル移動・ドラッグ編集を全部キーボードでやりたいんだが
166デフォルトの名無しさん
2023/03/12(日) 12:42:40.81ID:C0R72d/J なぜここできく
167デフォルトの名無しさん
2023/03/12(日) 14:07:53.88ID:BVlbavKU File > Preferences > Keyboard Shortcutsで設定画面開いて
cursorでフィルターかければcursorLeftみたいなコマンド出てくるから大体は変更できると思う
知らんけど
cursorでフィルターかければcursorLeftみたいなコマンド出てくるから大体は変更できると思う
知らんけど
168デフォルトの名無しさん
2023/03/12(日) 14:14:14.53ID:C6Uwumzj vimでもemacsでもrust-analyzer動くよ
169デフォルトの名無しさん
2023/03/12(日) 15:10:27.15ID:UHnNkdpy >>166
プログラム板で一番勢いあるのここだから
プログラム板で一番勢いあるのここだから
170デフォルトの名無しさん
2023/03/12(日) 16:06:30.84ID:nONlRGBh 大学生が書いたQiita記事のほうがこのスレの住民より要点おさえてるじゃんw
おまえらも見習えよ
おまえらも見習えよ
171デフォルトの名無しさん
2023/03/13(月) 11:54:44.62ID:38Ewlrdq Qiitaは秀才だらけだし
5chム板は文字通り住民がrustだし
5chム板は文字通り住民がrustだし
172デフォルトの名無しさん
2023/03/16(木) 07:24:49.76ID:M0AuqK/y173デフォルトの名無しさん
2023/03/16(木) 10:05:31.80ID:3ZknUEKY174デフォルトの名無しさん
2023/03/16(木) 10:12:16.89ID:xtobTOZe 具体的に何が問題なの?
175デフォルトの名無しさん
2023/03/16(木) 18:23:03.08ID:O0F78LdH176デフォルトの名無しさん
2023/03/16(木) 18:54:09.77ID:sXsK9Uns オジおじ言ってたら自演
スレ荒らしが目的
スレ荒らしが目的
177デフォルトの名無しさん
2023/03/17(金) 18:16:56.57ID:XLm6gsUd こういうコードを書くとエラーになります。
Bar を実装しているのは &T であって T ではないからだというのはわかるのですが、
どういう形で書けばいいのかわかりません。
T そのものではなく &T が Bar を実装しているという制約はどう表現すればよいのでしょうか?
trait Bar {
fn func(&self) {}
}
fn baz<T>(x: &T)
where
T: Bar, // どう書けばいいの?
{
let a = x.func();
}
struct Foo {}
impl Bar for &Foo {}
fn main() {
baz(&Foo {});
}
Bar を実装しているのは &T であって T ではないからだというのはわかるのですが、
どういう形で書けばいいのかわかりません。
T そのものではなく &T が Bar を実装しているという制約はどう表現すればよいのでしょうか?
trait Bar {
fn func(&self) {}
}
fn baz<T>(x: &T)
where
T: Bar, // どう書けばいいの?
{
let a = x.func();
}
struct Foo {}
impl Bar for &Foo {}
fn main() {
baz(&Foo {});
}
178デフォルトの名無しさん
2023/03/17(金) 19:14:05.96ID:NC4w42Nt179デフォルトの名無しさん
2023/03/17(金) 19:33:27.88ID:7IpB+MOB180デフォルトの名無しさん
2023/03/17(金) 19:35:54.06ID:NC4w42Nt どうしてもimpl Bar for &Foo {}で行きたいなら
こうするしかない
trait Bar: Sized {
fn func(self) {}
}
fn baz<T>(x: T) where T: Bar,
こうするしかない
trait Bar: Sized {
fn func(self) {}
}
fn baz<T>(x: T) where T: Bar,
181デフォルトの名無しさん
2023/03/17(金) 19:56:30.88ID:TZnQdWAf いやできるが……
fn baz<'a, T>(x: &'a T) where &'a T: Bar
fn baz<'a, T>(x: &'a T) where &'a T: Bar
182デフォルトの名無しさん
2023/03/17(金) 19:59:29.44ID:XLm6gsUd なるほど、寿命を省略できないのですね。
ありがとうございます。
ありがとうございます。
183デフォルトの名無しさん
2023/03/17(金) 20:06:51.73ID:kImSYq8C184デフォルトの名無しさん
2023/03/17(金) 20:28:03.09ID:VjFaSUfW 寿命!
185デフォルトの名無しさん
2023/03/17(金) 21:08:25.10ID:XLm6gsUd186デフォルトの名無しさん
2023/03/18(土) 11:19:09.17ID:KAD/gYE9■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 立憲・野田代表が主張 台湾有事答弁で「質問者批判は筋違い」「答弁がおかしい」「高市総理迎合のネット世論は危険」★2 [♪♪♪★]
- 戦略的互恵関係望むなら答弁撤回せよと中国 [どどん★]
- 【速報】 植田日銀総裁 「円安進行が物価高を起こしている」 ★2 [お断り★]
- 「ふざけんな!」 国会議員給与、『月5万円増』報道にネット騒然 「国民が物価高で困っているのに」「定数削減とか言いながら…」 [♪♪♪★]
- デヴィ夫人、悪化の日中関係に言及「戦いましょう」「日本の経済人よ、日本総力で戦えば勝てるはず」 [muffin★]
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★11 [BFU★]
- 安倍晋三「わたしの愛馬は狂暴であります」👈乗ってそうなウマ [974680522]
- 高市首相「戦略的互恵関係望む」中国「なら答弁撤回しろよ」 [834922174]
- 戦略的互恵関係望むなら答弁撤回せよと中国。高市、もう後がなくなる [805596214]
- 【鈴木早苗】お米券おひとり様3000円に閣議決定 [993451824]
- 【悲報】日本、中国に対して切れるカードが1枚もないことが発覚… 中国にボロクソ言われても高市さんは黙り込むしかなかった [271912485]
- 【悲報】ウクライナ「ロシアに領土を割譲します」ウク信「ウクライナはプーアノン!」 [616817505]
