Mozilla発のRust言語のスレ
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
前スレ
Rust Part7
http://mevius.5ch.net/test/read.cgi/tech/1563114707/
探検
Rust part8
■ このスレッドは過去ログ倉庫に格納されています
2020/01/24(金) 11:47:52.41ID:9oO1hUHl
2デフォルトの名無しさん
2020/01/24(金) 12:03:40.01ID:ytRnz1Ft このスレにバグがある確率
↓
↓
3デフォルトの名無しさん
2020/01/24(金) 13:58:51.88ID:rcCZSgTk この世のC/C++プログラムにバグが一つでもあるぐらい%
2020/01/24(金) 15:10:27.64ID:2IgFvbdV
2020/01/24(金) 23:17:19.37ID:CbfOEjVR
質問です。
こんな構造体を作っていました。
struct Iter<T: Iterator> {
buffer : Option<char>,
iter : T
}
このとき T::Item が char であるような制限を表現する方法はありますか?
こんな構造体を作っていました。
struct Iter<T: Iterator> {
buffer : Option<char>,
iter : T
}
このとき T::Item が char であるような制限を表現する方法はありますか?
2020/01/25(土) 00:04:14.38ID:m3Nt4oA+
struct Iter<T: Iterator<Item=char>>
2020/01/25(土) 00:07:06.67ID:NV/40SqZ
8デフォルトの名無しさん
2020/01/25(土) 09:25:49.56ID:yPlwm7j6 どういたしまして
9デフォルトの名無しさん
2020/01/25(土) 10:02:56.84ID:cxLY0DeL ミスがある前提で作られたソフトウェアなんぞ使いたくないわ。
2020/01/25(土) 10:26:45.49ID:m3Nt4oA+
個人のミスが重大な問題にならないようシステムで防ぐんだぞ
1つのミスがそのままProductionのバグになるわけじゃないから
個々の部品が予期しない故障をする前提で設計したシステムと
個々の部品は想定外の故障はしない前提で設計したシステムと
どちらのほうが高い信頼性を実現できるのかは歴史を見れば明らか
だから優れたプログラマーは自分がミスを犯す前提で
そのミスが重大な問題につながらないよう個人単位でもシステムを構築してる
1つのミスがそのままProductionのバグになるわけじゃないから
個々の部品が予期しない故障をする前提で設計したシステムと
個々の部品は想定外の故障はしない前提で設計したシステムと
どちらのほうが高い信頼性を実現できるのかは歴史を見れば明らか
だから優れたプログラマーは自分がミスを犯す前提で
そのミスが重大な問題につながらないよう個人単位でもシステムを構築してる
2020/01/25(土) 10:50:03.15ID:hZDj10w+
ミスをしないエンジニアは存在する
俺だ
俺だ
12デフォルトの名無しさん
2020/01/25(土) 10:53:31.57ID:cxLY0DeL2020/01/25(土) 10:59:09.24ID:cUlFTyRf
14デフォルトの名無しさん
2020/01/26(日) 03:02:59.13ID:0RGBrSLm https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=511e2be2ae90342a9c36f759e73108b6
勉強がてらたらい回し関数をメモ化仕様で書いてみたんですけどあってますかね…自信がないです
勉強がてらたらい回し関数をメモ化仕様で書いてみたんですけどあってますかね…自信がないです
2020/01/26(日) 14:50:16.22ID:0RGBrSLm
返す変数間違ってました
2020/01/26(日) 15:15:02.80ID:0RGBrSLm
あーなんかいろいろ間違ってたんで出直します
2020/01/26(日) 17:36:36.36ID:HuWRexcG
プルリクとかも出す前にさんざん確認してんのに出してからすぐ「あ、ここ間違ってた…」みたいになるよね(´・ω・`)
18デフォルトの名無しさん
2020/01/26(日) 21:41:08.18ID:afCDhAgp Vec<String> を拡張すると定義外ってエラー出るんですけどなんでかわかる人います?
他のライブラリでVec拡張してるソース見ると特殊なことせずにimplできてるんですけどどうすればこのエラー取り除けますか?
impl From<Vec<&str>> for Vec<String> {
fn from(v: Vec<&str>) -> Self {
v.into_iter().map(String::from).collect()
}
}
error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
|
88 | impl From<Vec<&str>> for Vec<String> {
| ^^^^^---------------^^^^^-----------
| | | |
| | | `std::vec::Vec` is not defined in the current crate
| | `std::vec::Vec` is not defined in the current crate
| impl doesn't use only types from inside the current crate
|
他のライブラリでVec拡張してるソース見ると特殊なことせずにimplできてるんですけどどうすればこのエラー取り除けますか?
impl From<Vec<&str>> for Vec<String> {
fn from(v: Vec<&str>) -> Self {
v.into_iter().map(String::from).collect()
}
}
error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
|
88 | impl From<Vec<&str>> for Vec<String> {
| ^^^^^---------------^^^^^-----------
| | | |
| | | `std::vec::Vec` is not defined in the current crate
| | `std::vec::Vec` is not defined in the current crate
| impl doesn't use only types from inside the current crate
|
2020/01/26(日) 22:08:40.96ID:ux8Vy6ZU
>>18
ざっくりいうと
外部crateで定義された型 + 外部crateで定義されたtrait
の組み合わせでインプリするのは無理
どっちか片方が自crateで定義されたものなら問題ない
coherence ruleとかorphan ruleとかいうやつ
https://doc.rust-lang.org/error-index.html#E0117
ざっくりいうと
外部crateで定義された型 + 外部crateで定義されたtrait
の組み合わせでインプリするのは無理
どっちか片方が自crateで定義されたものなら問題ない
coherence ruleとかorphan ruleとかいうやつ
https://doc.rust-lang.org/error-index.html#E0117
20デフォルトの名無しさん
2020/01/26(日) 23:22:19.61ID:afCDhAgp >>19
おお、ありがとう
impl Vec<&str> の単体でも駄目だったから自trait作って実装した!
結構制約厳しいな
外部トレイトに実装するならめんどくさいけどマーカーつけとけよって意味かな
おお、ありがとう
impl Vec<&str> の単体でも駄目だったから自trait作って実装した!
結構制約厳しいな
外部トレイトに実装するならめんどくさいけどマーカーつけとけよって意味かな
2020/01/27(月) 17:44:19.37ID:e3ktUGSY
こんな関数は書けますか?
@ イテレータを受け取る
A 受け取る引数は @ のただひとつのみ
B 条件を満たす範囲を「スライスで」返す
スライスを作る記法は &s[1..10] みたいな感じなのでスライスの元になるオブジェクト s が必要なように見えますが、
スライスを返したいというのはいかにもありそうなことなので出来ないはずはないだろうという思いもあります。
イテレータは実際にはなんらかのシーケンスをたどるものではなく値の生成器である場合もありますが、
それらを区別するような制約を表現できますか?
@ イテレータを受け取る
A 受け取る引数は @ のただひとつのみ
B 条件を満たす範囲を「スライスで」返す
スライスを作る記法は &s[1..10] みたいな感じなのでスライスの元になるオブジェクト s が必要なように見えますが、
スライスを返したいというのはいかにもありそうなことなので出来ないはずはないだろうという思いもあります。
イテレータは実際にはなんらかのシーケンスをたどるものではなく値の生成器である場合もありますが、
それらを区別するような制約を表現できますか?
2020/01/27(月) 18:55:02.93ID:Ad8VU0Ek
2020/01/27(月) 22:07:00.22ID:0eef+IwM
スライスは連続したメモリ領域である必要があって
任意のイテレータがその条件を満たすのは不可能。
たまたま連続した場合だけスライスを返すのはunsafe使えば書ける。
ただ普通はイテレータ返してランダムアクセス必要なタイミングでcollectすると思う。
任意のイテレータがその条件を満たすのは不可能。
たまたま連続した場合だけスライスを返すのはunsafe使えば書ける。
ただ普通はイテレータ返してランダムアクセス必要なタイミングでcollectすると思う。
2020/01/27(月) 22:21:05.46ID:0eef+IwM
あと標準のイテレータは特に値の生成方法に関する型制約はないので
区別したいなら独自のイテレータ型を作って
標準イテレータへの変換を実装する感じかな。
区別したいなら独自のイテレータ型を作って
標準イテレータへの変換を実装する感じかな。
2020/01/27(月) 22:29:13.49ID:ZEgWdqLw
入力が連続したメモリ領域だってんなら引数をイテレータじゃなくてスライスにすればいい
当たり前だけどスライスを作れるもの以外からはスライスは作れないからな
当たり前だけどスライスを作れるもの以外からはスライスは作れないからな
2020/01/27(月) 22:46:49.78ID:ZEgWdqLw
ごめん、なんか変なこと言ってるわ・・・スルーして
2020/01/27(月) 23:06:14.69ID:Ad8VU0Ek
>>23
>たまたま連続した場合だけスライスを返すのはunsafe使えば書ける。
イテレータを受け取ってスライスを返すとした場合
スライスの元になってるシーケンスのlifetimeが関数内に閉じるから
unsafe使ったとしてもborrow checkerにひっかからない?
>たまたま連続した場合だけスライスを返すのはunsafe使えば書ける。
イテレータを受け取ってスライスを返すとした場合
スライスの元になってるシーケンスのlifetimeが関数内に閉じるから
unsafe使ったとしてもborrow checkerにひっかからない?
2020/01/27(月) 23:19:10.77ID:2FR/nuYZ
>>27
from_raw_partsでスライスを作った場合は元のポインタ由来のライフタイムは関係なくなるので
ボローチェッカは通るんじゃないかな?
もちろんそのスライスの実体が生きているかどうかは
自己責任になるけど。
from_raw_partsでスライスを作った場合は元のポインタ由来のライフタイムは関係なくなるので
ボローチェッカは通るんじゃないかな?
もちろんそのスライスの実体が生きているかどうかは
自己責任になるけど。
2020/01/28(火) 00:18:00.02ID:nzUBCcWX
>>28
なるほど
イテレータからイテレータの元のシーケンスが取得できればそれでいけるってことか
ちょっと見てみたらslice::Iterのas_sliceとかも内部でfrom_raw_parts使ってた
自分では使わないと思うけど勉強になった
なるほど
イテレータからイテレータの元のシーケンスが取得できればそれでいけるってことか
ちょっと見てみたらslice::Iterのas_sliceとかも内部でfrom_raw_parts使ってた
自分では使わないと思うけど勉強になった
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- (社説)国旗損壊罪の新設案 窮屈な社会が待っていないか:朝日新聞 ★2 [少考さん★]
- 「日本は安い」海外客は“歴史的円安”で大奮発 節約日本人は“クマなし県”に殺到 [ぐれ★]
- こども食堂、全国で1万か所超す「誰もが立ち寄れる地域のインフラに」…物価高「涙を流す人もいて深刻」 [煮卵★]
- 【石破茂前首相】おこめ券配布に異議「その原資は何ですか?国民の税金でしょう?」 ★2 [ぐれ★]
- 「政府効率化省」早くも解体か トランプ政権の目玉政策―米報道 [蚤の市★]
- 高市早苗首相への“女性からの厳しい指摘”に「女性の敵は女性なのか」の議論勃発 日本社会に色濃く残る男尊女卑の風潮が… [少考さん★]
- 【悲報】外国人「フリーレンを黒人にしてみたよ!」→日本人さん、ブチギレwwwwwwwwwwwwwwwwwww [839150984]
- 統一教会、台湾で政党になって公明党的ポジションにいたww [347751896]
- __イスラエルの国家安全保障担当大臣、占領下エルサレムでの子供公演を上演直前にイスラエル情報機関に中止させる [827565401]
- 【悲報動画】高市、G20で英語も出来ず人脈も無いのでずっと張り付いた笑顔でキョロ充ムーブ😭サナ…俺悔しいよ [359965264]
- 【悲報】中国さん「沖縄独立したい」とサジェストまで工作していたwwwwwwww
- なんかSNSもヤフコメも「高市総理はよくやった!立憲が悪い!」の大合唱なんだけど…もしかして日本てこのまま行く感じ? [268718286]
