1 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:28:20.99 ID:cuIcFT6k.net] 公式 https://www.rust-lang.org/ https://blog.rust-lang.org/ https://github.com/rust-lang/rust Web上の実行環境 https://play.rust-lang.org 日本語の情報 https://rust-jp.rs/ ※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/ ※C++との比較は専用スレへ C++ vs Rust https://mevius.5ch.net/test/read.cgi/tech/1619219089/ ※次スレは原則>>980 が立てること 前スレ Rust part14 https://mevius.5ch.net/test/read.cgi/tech/1644596656/
620 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 15:51:26.10 ID:Lxou0O6d.net] DiscordとかDropboxとか
621 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 16:19:59.18 ID:C3/u0lQ5.net] WinとかLinuxの中身ですでに使われてなかった?
622 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 18:52:01.33 ID:BGPUwt90.net] >>593 同じ臭いも何も同一人物だろ
623 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 19:26:39.50 ID:WsHL0uxM.net] >>611 Linuxはまだ winは確実なソースあったっけ? OS系だとAndroidでは使われてる(まだデフォルトで有効ではないけど)
624 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 23:25:25.63 ID:HlAQKNMT.net] なんでRound18なんて大昔の過去を?
625 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 06:12:09.52 ID:6S+GFICB.net] >>612 どうでもいい >>613 同じくどうでもいい
626 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 17:11:51.09 ID:tUHADwRi.net] Rustはver2.0にはなりませんって言ってるけど実質はとっくの昔にver2.0になってる
627 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 19:14:45.66 ID:geXDvND7.net] >>616 どういうこと?
628 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 20:36:02.36 ID:nrxswUhC.net] >>562 >>566 CheckedAddAssignにこだわる必要はないため、発想を転換して、 checked_add()の原関数であるoverflowing_add()を用いることで、 overflowing_add_assign()を用意して同じようにbool値を返せば解決する 具体的には以下のように引数はadd_assign()と同じでbool値を返せばよい trait OverflowingAddAssign { fn overflowing_add_assign(&mut self, rhs: &Self) -> bool; } オーバーフローするi8型〜u128型にはoverflowing_add()があるため実装はこうなる let is_overflow; (*self, is_overflow) = self.overflowing_add(*rhs); is_overflow この3行のコードでちゃんと最適化されるかどうかを確認するため、 単純にadd_assignを用いた場合、すなわち「*self += rhs」と比較すると https://godbolt.org/z/WP3En8xM8 のアセンブリ出力となり、オーバーフローを返す以外は同一に最適化されることが確認できる 一方でオーバーフローしないBigUintなどの型への実装はこうなる *self += rhs; false つまりオーバーフローの結果として常にfalseを返すので、 こちらは使う側でオーバーフローの扱いが消えてadd_assign部分のみに最適化される したがってこのOverflowingAddAssignを用いてジェネリックに書けば、 どちらの型の場合であっても、非ジェネリックに書いた時と同一コードとなる
629 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 20:47:24.48 ID:nrxswUhC.net] >>577 一般的に参照返すイテレータ類を実装する場合の注意点として、 1. let x0 = x_iter.next(); 2. let x1 = x_iter.next(); 3. ここで x0 の指す値を使う 順にこのような使い方をした時の挙動として、以下4パターンが考えられる A. ✕ 実行時エラーとなる B. ✕ x0の指す値が変化してしまう (次のx1の指す値と同一になってしまう) C. ○ x0もx1もそれぞれ正しい値を指す D. ○ コンパイル時エラーとなる Rcとget_mut()を使った>>511 のコードがNGのパターンA.で、これを避けるために、 Rc<RefCell>を使う提案のようだが、それもNGのパターンB.となってしまう Rcとmake_mut()を使えばパターンC.となり、これがRc利用の場合の解となる しかし参照を返すイテレータ自身がmake_mut()でclone()するのは役割として過剰である 切り分けとしてはイテレータを使う側が必要に応じてclone()するのが望ましい そういうコードへ適切に誘導できる道が、コンパイル時エラーで示すパターンD. 具体的には、似非IteratorであるStreamingIteratorを用いるか、 Rust本命のGATsを用いたLendingIterator (=GATs適用後のIterator) を用いると、 clone()が必要な場面ではコンパイル時エラーにより知らせてくれる もちろん普通にnext()ループ内の利用ならばclone()の必要なくコンパイルが通る
630 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 20:59:35.22 ID:nrxswUhC.net] 実際に >>618 のOverflowingAddAssignを用いてLendingIteratorで実装すると 以下のようになり、GATsを用いている以外は現状のIteratorともちろん同じ形 自己参照を返せるようになった点のみ異なる impl<T: OverflowingAddAssign> LendingIterator for Fibonacci<T> { type Item<'a> = &'a T where Self: 'a; fn next<'a>(&'a mut self) -> Option<Self::Item<'a>> { if self.is_overflow { return None; } if self.is_first { self.is_first = false; } else { self.is_overflow = self.p.overflowing_add_assign(&self.q); std::mem::swap(&mut self.p, &mut self.q); } Some(&self.p) } } is_first処理は >>511 のコードでの「iter::once(p.clone()).chain(...」部分であり必須 また、前述のようにBigUintで用いれば is_overflow が常にfalseのため最適化で消えて、 値の更新部分は「self.p += &self.q」のみが残り非ジェネリックと同一コードとなる したがって、上述のコードがどの型でも最善に動作するコードとなるだろう
631 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:33:27.12 ID:HOCAPH7I.net] NAVERまとめを彷彿とさせるレス乙 3~4日もかけて頑張って調べたのは讃えるが 特質の異なるものを必要もなくジェネリック化することがアンチパターンだということに早く気づいてね
632 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:51:32.06 ID:rC/Ton17.net] これは同じものだからジェネリックでいいんじゃね
633 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:02:56.78 ID:geXDvND7.net] >>620 構造体メンバーであるis_overflowが常にfalseであることが分かるほどコンパイラ賢いんだっけ? 実際に生成されるコード確認した?
634 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:16:28.43 ID:McWr7xMA.net] add系は#[inline]だから大丈夫
635 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:22:02.34 ID:geXDvND7.net] >>624 構造体メンバの値はグローバル変数なんかと同じで関数外で値が変更される可能性があるので メンバが特定の値しか取らないことを暫定として最適化するためには、 crateの範囲を超えてプログラム全体で値が設定されうる箇所が他にないことを確認するか メンバが可視な範囲で確認する必要があると思うけど、 前者をやるためにはリンク時最適化が必要だし 後者ならメンバの可視性をLLVMに渡さないといけないと思う rustcとLLVMはそこまでやってるの?
636 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:54:00.11 ID:E86JsxIR.net] rust結構面白いからマイクロソフトがVisualStudioでRustでWindowsFormを作れるようにしてくれればなあ
637 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:59:17.60 ID:MphJhZqp.net] >>618 それが>>566 の2行目で書いてる工夫のことだよ boolではなくchecked_add使ってOption<()>返すメソッドにしておけば?演算子でシンプルに書ける
638 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:07:42.57 ID:McWr7xMA.net] >>627 assignでない演算は生成のため内部でcloneが発生して無駄と既に結論が出ている
639 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:11:14.31 ID:0LaPlWrL.net] GATがstableになるの意外と近い予定なんだな 年単位で先のことかと思ってた
640 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:18:22.58 ID:H16c0lbs.net] >>625 Rustでそれは起きない 書き換えるには所有権か&mutが必要でコンパイラは全て把握している 更に構造体のメンバーはpub指定がない限り他者はアクセス不能 つまり今回ならばnext()しかメンバー書き換えしないとコンパイラは確定できる
641 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:25:01.40 ID:geXDvND7.net] >>630 その最適化するのはLLVMだけどLLVMが最適化できるだけの情報を渡してるの?というのが聞きたいこと
642 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 00:14:58.10 ID:RutuvYDu.net] >>623 その通りRustコンパイラが賢いことを確認したよ is_overflowが常にfalseとなることを察知してNoneを返すことが無くなったみたい Noneが来ない利用側のwhile let Some(n) = iter.next()は無限ループのコードとなっちゃった さらにwhile loopより後ろのコードは永遠未達と判断されて完全に消えた
643 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 00:32:02.84 ID:XmIGhHAx.net] >>628 checked_add使うのはプリミティブだけだよ BigUintはadd_assignで常にSome(())
644 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 00:46:44.89 ID:BEV+i+nu.net] >>620 GATってIteratorとか既存TraitのAssosiate Typeに直接ライフタイム書けない仕様になったの? LendingIteratorみたいに別のTraitを使わないといけないようならイテレータ関連の仕組みが2重なって使い勝手が悪い
645 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 00:50:16.18 ID:WmCB7dh7.net] >>633 意味不明 Some(())/Noneにするならば>>618 のbool値のコードで十分
646 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 00:56:09.87 ID:WmCB7dh7.net] >>634 もちろん出来るようになる 今は無理だからRust公式ブログで解説された例に倣って仮にLendingIteratorとの名で定義して使うなどする
647 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 12:04:19.24 ID:GDAgVCx4.net] >>632 おー、そんな賢いんだ。すごい ちなみにfn mainとイテレータの定義は同じcrateに含まれている? lib crateでイテレータを定義してbin crateから使った場合にどうなるかも気になる
648 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 14:28:57.42 ID:HonuYlRO.net] >>626 こういうMicrosoftからのサポートは俺も期待してる VC++よりもRust書きたい
649 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 17:16:12.55 ID:GB/2aB1F.net] やめてくれ 汚コードまみれになる
650 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:44:34.63 ID:oVc0GyRX.net] 乱数系のモジュールの仕様変更がかなりガッツリあったみたいなんだけど Rustってこういうことよく起るの? なんかWeb系みたいなノリを感じたんだが合ってる?
651 名前:デフォルトの名無しさん [2022/06/13(月) 19:57:14.15 ID:86dwWfAN.net] なんのはなしだ
652 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:58:13.01 ID:8KDu5nut.net] >>640 人に読んでもらう文章は重要なところ省いたら読んでもらえないよ
653 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:59:25.24 ID:GDAgVCx4.net] >>640 標準ライブラリで破壊的変更はほとんどない 外部crateなら概ねsemverに従ってるし lockfile の仕組みもあるから、 以前ビルドできていたものがビルドできなくなることもほとんどない
654 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:37:45.98 ID:XXqnAuVB.net] >>638 サポートってどの程度のサポートを期待しているんだ? MSがRustコンパイラー出せばWindowsのRust用フレームワーク出すんだろうがな 出さないなら、C/C++/C#のAPI/フレームワークをRustからとりあえず使えるようにしました 程度のサポートになるだろう。 期待しているのはRust用フレームワークであってRustからとりあえず使えるよじゃないだろ? [] [ここ壊れてます]
656 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:37:53.20 ID:oVc0GyRX.net] >>643 あれ外部ライブラリか しかし乱数系の標準ライブラリってまだRustにないのか やぱ若い言語だなRust
657 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:43:42.90 ID:cs6TlBtz.net] >>645 若いというか意図的に標準ライブラリから外してあるよ 理由は標準入りしてしまうと破壊的変更ができなくなって腐るから だから将来的にも標準に入る予定はないと思う
658 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:52:20.46 ID:oVc0GyRX.net] >>646 意図的に外してるの? ふーん、それはそれで面白い
659 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 23:01:34.06 ID:JmWkv6oB.net] >理由は標準入りしてしまうと破壊的変更ができなくなって腐るから なんという本末転倒感
660 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 00:25:58.88 ID:DOq4xEj+.net] 基本的にRustはシンプルに最小限の言語構成部分しか標準ライブラリに持たない方針 つまり各プログラミング言語毎に標準ライブラリの意味合いや範囲が異なるのと同じ だから乱数でも正規表現でも何でもRustでは外部クレートに存在する 非同期だって基本構成部分のasync/await/Futureは言語として持つけど 非同期ランタイムや非同期ライブラリは外部クレート
661 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 00:42:56.77 ID:OVbm/pyy.net] OptionやResultの便利メソッドはどんどん追加されてるし別に標準ライブラリを最小限のものにしようとはしてないでしょ
662 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 00:49:05.73 ID:o3U2MVOf.net] >>649 >最小限の言語構成部分しか標準ライブラリに持たない方針 俺もそんな方針だと思う これが良いのかどうかは分んが。 標準ライブラリだとコンパイラ屋がコンパイラを出す限りサポート・メンテされるのが 他の言語では標準ライブラリなのが外部クレートだと、将来これをメンテする奴がいないになって 放置になり困ったになる可能性あるからな。
663 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 01:01:42.50 ID:DOq4xEj+.net] >>650 それは最小限の意味合いの受け取り方が違っているだけで同じ Option/ResultはRustにとって言語構成部分 そしてそのメソッドは強いて言えば多彩な制御構文にも相当する だからRustの最小限の標準ライブラリに含まれているし必要性が認識されればメソッドも増える
664 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 01:15:57.14 ID:DOq4xEj+.net] >>651 それは「サポートする人がいなくなればサポートされなくなる」という当たり前のことでRustとは別の一般的な話 どんな製品でも、どんなライブラリでも、どんな言語でも、同じ そして基本構成部分を含むRust本体の改善&メンテと、それ以外のライブラリのそれとは明らかに別の話たから切り離されているのも自然
665 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 01:33:47.46 ID:Sv0LbY5c.net] 同じではあるがcargoの性質で余計に面倒な状態になってる。 この辺が低レイヤー向けと相性が悪い部分だな。
666 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:16:38.57 ID:DOq4xEj+.net] >>654 低レイヤー向けのプログラミングをRustでしていて相性の悪さで困ったことはないが具体的に何だろう?
667 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:19:17.55 ID:0h5AdYzJ.net] 聞きかじりだけどクロスコンパイルとかやりたかったらxargo使うもんなんじゃないの
668 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:25:36.70 ID:RiQN/QJO.net] 同梱されるライブラリが巨大な言語で とんでもないクソ仕様が最初に入ってしまうとか メンテナがいなくなったけど互換性維持で簡単に削除できないとか 色々あるからなあ
669 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:36:05 ID:OVbm/pyy.net] >>652 確かにOptionやResultそのものは言語機能にも関わってくる基本的な構成要素だけど、 OptionやResultの便利メソッドは外部crateでも定義できるよね また、HashMapやBTreeMapなどは "言語" の構成要素ではないし、 最近ではonce_cellという外部crateで実現できていたものをstdに取り込もうとしている "言語" を構成する最小限の要素に絞るのであれば、これらは外部crateで実現すればよくて標準ライブラリに入れなくても良いはずだよね おそらく、標準ライブラリに取り込むものは厳選してコンパクトさを保つことを前提に、 広く使われていてAPIが安定しているものは取り込んでいくというスタンスなんだと思うよ
670 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:42:44 ID:OVbm/pyy.net] あー、rustで書かれたプログラム全体の中でのデファクトスタンダードとかお作法とかも含めて言語って言っているのかな そうなのであれば特に異論ないです
671 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:45:28 ID:xoZMylRu.net] マンパワーが足りないから選択と集中で切り捨ててるだけ 利用者がそれを受け入れてるのは切り捨てた部分をコミュニティで支援するからコア機能の開発に力を注げってこと
672 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:53:05 ID:R/3cLRA4.net] >>657 iostreamのことかああああ!!
673 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 03:08:52 ID:aUgYAX3K.net] >>661 アレをRustに取り入れようという動きはないのかな?
674 名前:デフォルトの名無しさん [2022/06/14(火) 18:56:17.12 ID:HX1wvnNi.net] >>648 利便性ではなく一貫性で標準を決めているってことだろ
675 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 14:46:59.83 ID:LjsAAUyE.net] >>658 Rustの利点はOption, Resultがmatchなどの構文で評価できる事、演算子もあるが演算子オーバーロードができる言語であれば同様のことができてしまうがC++23とか26とかで提案されていたinspectはmatchそのもの
676 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 15:29:08.46 ID:13+3Y2cU.net] Rustの活用でElectronよりも軽くて速いアプリフレームワーク「Tauri」が安定版に まずはデスクトップから。モバイル・Webへの対応も進行中 https://forest.watch.impress.co.jp/docs/news/1417148.html
677 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 16:07:33.42 ID:Ry+36K98.net] TauriとYewで純正Rustデスクトップアプリ開発か、 あるいはTauriとVue.jsでフロントエンドのみJavascriptでデスクトップアプリ開発か、
678 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 16:51:56.72 ID:TPrqrDPX.net] Tauri + Vite + Vue 3 + Vuetify 3でデスクトップアプリ開発オラァ!!!
679 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 19:39:52.77 ID:3W1WJ+ID.net] そういやAtom開発者がRustで書き直した究極のエディター「Zed」はどうなったんや。 https://forest.watch.impress.co.jp/docs/serial/yajiuma/1374/986/amp.index.html
680 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 19:54:27.31 ID:hIo52KfN.net] >>665 PC Watchが報じるほどのニュースか、これ?
681 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 20:36:05.07 ID:qYRKaF3V.net] >>668 >>UIフレームワークには、GPUを活用した新設計のものを用意。このフレームワークは「GPUI」と呼ばれている。 これがどうなるかだな
682 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 20:52:57.67 ID:rVOBJfNW.net] フレームワークおじさんきちゃったか
683 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 21:28:18 ID:5USgn4My.net] rust製フレームワークの話なら歓迎、jsは該当スレでよろ
684 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 22:27:59.11 ID:/ddt6fDk.net] >>670 俺的にはそれなんかバックにC/C++のVulkan系を用いたものって気がするんだよな
685 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 01:45:23.89 ID:mZKsuJMX.net] rustでgpuなんか使い始めたらライブラリぶっ壊れまくるぞ
686 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 08:27:34.98 ID:8YmvneAf.net] ?
687 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 15:39:33.09 ID:NH7eG327.net] 俺も今日からラスタシアンだからよろしくな シャドーイングいいねアンダースコアで区切った同じような名前の変数が同一スコープ内に増え続けるのが嫌でイライラしてたらからこの仕様はめちゃ好き
688 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 17:57:54.34 ID:gT1dTx1o.net] >>676 カタカタで書くとラステイシャ
689 名前:唐ゥラステイションだからよろしくな [] [ここ壊れてます]
690 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 06:02:27.98 ID:ib599DIL.net] 全然関係無いんだけど 最近の言語って使ってる人達に名前つけるじゃん パイソニスタとかPHPerみたいな CとかC++にもあるのかなー?とか考えてた時に思い出したんだけど Pythonでモヒカンとか言ってる人達いるじゃん アレの語源は何なの?
691 名前:はちみつ餃子 mailto:sage [2022/06/18(土) 11:43:40.01 ID:vGEU23LW.net] >>678 Python 関連の用語としては知らんけど、これのこと? https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%92%E3%82%AB%E3%83%B3%E6%97%8F_(%E3%83%8D%E3%83%83%E3%83%88%E7%94%A8%E8%AA%9E)
692 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 11:52:07.94 ID:quioMmSC.net] モヒカン族とか、一部の人間が使ってるだけでネットではろくに聞かない言葉だね
693 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:19:14.82 ID:ib599DIL.net] >>679 どうもありがとう ネットスラングだったのか でもPython界隈以外で聞いたことないや
694 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:29:31.13 ID:XkkeHcIr.net] 俺は本場海外の用語以外は一切使わない陰キャチー牛の日本人が勝手な造語の和製英語とかクソダサいからな
695 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:41:40.55 ID:rUpNWN/L.net] 2005~2010頃の技術コミュニティではよく聞いたけど 最近はアンチハラスメントポリシーに抵触するから使われなくなった
696 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:28:43.26 ID:n5ZvcUIJ.net] Rust サビちゃん Python ヘビちゃん
697 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:35:45.47 ID:n5ZvcUIJ.net] サビちゃんでもありヘビちゃんでもありヘジたんでもあり職場では犬たん++
698 名前:はちみつ餃子 mailto:sage [2022/06/18(土) 13:37:07.64 ID:vGEU23LW.net] >>678 C 使いや C++ 使いのことは Cer とか C++er と書いたりすることはあるが、どう読むべきなのかわからぬ……。
699 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:42:03.39 ID:n5ZvcUIJ.net] >>686 社畜
700 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:48:09.17 ID:n5ZvcUIJ.net] この世の中あまたの言語があるのになぜCやC++でコード書くかと言えば仕事だから
701 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 14:09:02.52 ID:XkkeHcIr.net] 普段仕事でC++使わない俺からするとRustめちゃくちゃわかりやすくて触ってて楽しい 特に配列やコレクションの扱い易さが段違いだわ
702 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 14:30:49 ID:n5ZvcUIJ.net] >>689 まあ他の言語触ると扱いやすくて気絶するから触るな
703 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 14:57:08.56 ID:iczP/r4h.net] ※お話の途中ですが蟹が通ります ,、_,、 三 ( ´・ω・`) 三 /ヽ /ヽ (V) (V) 三ノ  ̄ ゝ 三 ミ (´・ω・`) ミ タタタッ サササッ
704 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 15:02:32.97 ID:hqbe2tQH.net] そのカニもらって食べちゃうね
705 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 15:34:56.20 ID:XkkeHcIr.net] 命名規則のガイドラインがスネークケースなのがC/C++に配慮した結果なのかなぁって気がするけどまぁ慣れの問題だから文句ないよ
706 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 19:21:06.68 ID:M9fy3K3m.net] 公式ドキュメントにRustは式指向言語ですってあるんだが式指向とはなんぞや?
707 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 19:25:35.79 ID:1ZLmOyHM.net] 制御構文が文じゃなくて式になってて値を返すという意味かと
708 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 19:54:48.42 ID:vxK0JF3c.net] 終端にセミコロンつけたら式じゃなく文になっちゃうとか独特だよね fn five() -> i32 { 5 }とかfn five() -> i32 { 5 };って書けた方が違和感ない気がするんだけどね
709 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:32:50.72 ID:aTjkq+5e.net] Rustはラムダ引数の型推論が多くの他の言語とは異なって機能するんだよ
710 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 21:11:11.71 ID:6CHzGsUP.net] 最近、ゲームのRustが人気過ぎて検索に支障が出てる
711 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 22:17:14.37 ID:ZZmk5y2Z.net] >>694 日本語訳は公式じゃないから 今はもう公式では式指向(expression oriented)という言葉は使われてない 式指向言語の意味を知りたければwikiでもどうぞ https://en.wikipedia.org/wiki/Expression-oriented_programming_language
712 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 00:35:13.44 ID:HLAvlKQn.net] VTuberやストリーマーの間で人気を博しているサバイバルゲーム「RUST」とは? https://www.moguravr.com/vtuber-rust/
713 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 01:08:17.73 ID:WtnMKA9r.net] Goを見習って、Rustlangで検索してくださいね
714 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 05:08:01.71 ID:UsMsALi7.net] rust lang OR 言語 -go
715 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 07:36:52.36 ID:kKndzz48.net] Rustではboolを論理値と訳してるけど言語ごとに揺らぎがあるのはなんでだろうね 個人的に真偽値を使ってるけど真理値って解釈もあるしこれも定義は別で厳密には違うけどRustとしては解釈は同じで違いはないってことなのかな
716 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 08:12:44 ID:Nk1h87ob.net] 作った人が違うんだから揺らぎがあるのは当然だろ
717 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 09:35:04.20 ID:pSFkutGr.net] 作った人というより訳した人の違い Rustの日本語書籍でも統一されてるわけじゃない 論理値はもともとlogical valuesの訳語 >Rustではboolを論理値と訳してるけど 正しくは「The Bookの日本語訳ではBooleanを論理値と訳してるところがあるけど」
718 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 09:50:34.90 ID:KbscZGS+.net] 手元のRust本見てみたけど真偽値も真理値もあるね 個人的には真偽値かな
719 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 10:18:36.03 ID:MGBoiv+i.net] 型は論理型と言いたくなる。真偽値型ってのもたまに聞くけど。
720 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 10:32:50.28 ID:YciZ0/bi.net] ブール型でええやん