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
レス数が950を超えています。1000を超えると書き込みができなくなります。
2020/01/24(金) 11:47:52.41ID:9oO1hUHl
864デフォルトの名無しさん
2020/07/17(金) 00:05:43.64ID:wlvhc7i8865デフォルトの名無しさん
2020/07/17(金) 01:59:14.04ID:ppPvs5zR866デフォルトの名無しさん
2020/07/18(土) 18:30:51.49ID:XPr1Z8D3 神がついてるから大丈夫
867デフォルトの名無しさん
2020/07/20(月) 13:18:08.21ID:8IyUCuKf actix-wevからRocketに移行します
868デフォルトの名無しさん
2020/07/21(火) 02:22:25.82ID:119VIs66 >>867
その理由は?
その理由は?
869デフォルトの名無しさん
2020/07/21(火) 18:35:05.91ID:jydcaLWL スライスから差集合を作るの際にスライスをそれぞれhashsetにしてdifference呼ぶ以外で良い書き方ありますか?
870デフォルトの名無しさん
2020/07/22(水) 00:13:53.48ID:g6BKSYlu それぞれsortして先頭から比較していく
871デフォルトの名無しさん
2020/07/22(水) 01:18:16.47ID:EHcGprvb >>869
シンメトリックじゃない単なる差集合なら
片方だけsetにしてもう片方の要素でループしながらチェックするのでもいい気がする
あと状況によってはBroom filterみたいなのを使うと高速化できるかも
シンメトリックじゃない単なる差集合なら
片方だけsetにしてもう片方の要素でループしながらチェックするのでもいい気がする
あと状況によってはBroom filterみたいなのを使うと高速化できるかも
872デフォルトの名無しさん
2020/07/22(水) 13:33:09.23ID:toRz6DNg fn aaa(s: &str) {
if s == "aaa" {
compile_error!(r"If s is "aaa", compile error!");
}
}
fn main() {
// compile error!
aaa("aaa");
// can compile
aaa("aaaaaaaa");
}
こういう風にコンパイル時にコンパイルエラー出したいんだけど、実際はcompile_error!を書いてる時点でコンパイルになるんだけど回避方法ってないかな
if s == "aaa" {
compile_error!(r"If s is "aaa", compile error!");
}
}
fn main() {
// compile error!
aaa("aaa");
// can compile
aaa("aaaaaaaa");
}
こういう風にコンパイル時にコンパイルエラー出したいんだけど、実際はcompile_error!を書いてる時点でコンパイルになるんだけど回避方法ってないかな
873デフォルトの名無しさん
2020/07/22(水) 13:33:41.15ID:toRz6DNg こういう風にコンパイル時にコンパイルエラー出したいんだけど、実際はcompile_error!を書いてる時点でコンパイルになるんだけど回避方法ってないかな
↓
こういう風にコンパイル時にコンパイルエラー出したいんだけど、実際はcompile_error!を書いてる時点でコンパイルエラーになるんだけど回避方法ってないかな
↓
こういう風にコンパイル時にコンパイルエラー出したいんだけど、実際はcompile_error!を書いてる時点でコンパイルエラーになるんだけど回避方法ってないかな
874デフォルトの名無しさん
2020/07/22(水) 15:44:52.79ID:vLwW7fFZ875デフォルトの名無しさん
2020/07/22(水) 15:48:48.87ID:uZAjXvzm ダブルクォートがaaaの部分で外れてるのが原因とかじゃなくて?
876デフォルトの名無しさん
2020/07/22(水) 15:58:57.61ID:6Pdi74ki aaa(r#"aaa"iiii"uuuuu"#)
877デフォルトの名無しさん
2020/07/22(水) 16:04:28.78ID:toRz6DNg >>875
ごめん。ここに貼る用のデバッグコメ。
そこ直したら本題の条件分岐のコンパイルエラーにならないのがでてくる
compile_error!(r#"If s is "aaa", compile error!"#);
ごめん。ここに貼る用のデバッグコメ。
そこ直したら本題の条件分岐のコンパイルエラーにならないのがでてくる
compile_error!(r#"If s is "aaa", compile error!"#);
878デフォルトの名無しさん
2020/07/22(水) 18:44:16.24ID:EHcGprvb compile_error!は条件付きコンパイルかマクロでしか使えないんじゃ?
compile_error!と記述してる行がコンパイルするコードに含まれることになったらコンパイルエラー
マクロを展開する段階では変数の値を評価できないから
文字列を受け取る関数に対して特定の文字列を渡すコードがあったらコンパイルエラーってのは無理な気がする
compile_error!と記述してる行がコンパイルするコードに含まれることになったらコンパイルエラー
マクロを展開する段階では変数の値を評価できないから
文字列を受け取る関数に対して特定の文字列を渡すコードがあったらコンパイルエラーってのは無理な気がする
879デフォルトの名無しさん
2020/07/22(水) 22:19:16.93ID:ItqkS36e aaaを手続きマクロにすればできるとは思うけど。
880デフォルトの名無しさん
2020/07/23(木) 01:38:31.65ID:es6swX3J 最近RustのSlackでも出てきた福野泰介ってやつ声でかいよな
こいつどのコミュニティでも何かしら主張して目障りだわ
こいつどのコミュニティでも何かしら主張して目障りだわ
881デフォルトの名無しさん
2020/07/23(木) 01:41:56.15ID:5yzO6ql9 Ubuntu Japanese Team に言いつけて潰してもらおうぜ
882デフォルトの名無しさん
2020/07/23(木) 18:56:28.53ID:Qx3jp5Nz 環境はMacOS Catalina, Rustは1.45.0です
今弄ってる物(https://github.com/Nercury/rust-and-opengl-lessons)で
/lib/gl/src/lib.rs内に
include!(concat!(env!("OUT_DIR"), "/binding.rs"));
というのがあるのですがですがcargo buildすると
this error originates in a macro
error: couldn't read /Users/Path/target/debug/build/gl-71effbf83f5b03a9/out/binding.rs: No such file or directory (os error 2)
と表示されます
https://github.com/rust-analyzer/rust-analyzer/issues/1964
https://github.com/rust-skia/rust-skia/issues/10
などを見たのですが具体的な修正がわかりませんでした。
Rustは最近始めたばかりでincludeマクロやcargoの仕組みなどまだあまり詳しくありません
このinclude!を成功させる方法を教えてください
迷惑をかけてしまうかもしれませんがご教授お願いします
今弄ってる物(https://github.com/Nercury/rust-and-opengl-lessons)で
/lib/gl/src/lib.rs内に
include!(concat!(env!("OUT_DIR"), "/binding.rs"));
というのがあるのですがですがcargo buildすると
this error originates in a macro
error: couldn't read /Users/Path/target/debug/build/gl-71effbf83f5b03a9/out/binding.rs: No such file or directory (os error 2)
と表示されます
https://github.com/rust-analyzer/rust-analyzer/issues/1964
https://github.com/rust-skia/rust-skia/issues/10
などを見たのですが具体的な修正がわかりませんでした。
Rustは最近始めたばかりでincludeマクロやcargoの仕組みなどまだあまり詳しくありません
このinclude!を成功させる方法を教えてください
迷惑をかけてしまうかもしれませんがご教授お願いします
883デフォルトの名無しさん
2020/07/23(木) 19:05:44.31ID:es6swX3J 福野泰介はたしかにどこでも目立つ。
自己顕示欲もあそこまでいったら面白い、反面教師として役立つ
自己顕示欲もあそこまでいったら面白い、反面教師として役立つ
884デフォルトの名無しさん
2020/07/23(木) 21:20:06.43ID:DkkvFejZ >>882
lib/gl/build.rsでOUT_DIRにbinding.rsを作成してる
ビルドスクリプトが意図した通りに動いているのか確認するために
build.rsを変更してbinding.rsのフルパスをprintlnでもするようにして
cargo build -vvしてみるといいと思う
ビルドスクリプトについて詳細知りたければこの辺読んで
https://doc.rust-lang.org/cargo/reference/build-script-examples.html
lib/gl/build.rsでOUT_DIRにbinding.rsを作成してる
ビルドスクリプトが意図した通りに動いているのか確認するために
build.rsを変更してbinding.rsのフルパスをprintlnでもするようにして
cargo build -vvしてみるといいと思う
ビルドスクリプトについて詳細知りたければこの辺読んで
https://doc.rust-lang.org/cargo/reference/build-script-examples.html
885デフォルトの名無しさん
2020/07/24(金) 00:48:59.83ID:j+hLU6yH886デフォルトの名無しさん
2020/07/24(金) 10:22:52.41ID:c87Ipt6p 同じサーバー内でポート別にクライアント用サーバー(Nuxt)とAPI用サーバー(Rust)立ち上げるのってどう思う?
クライアント用サーバーは初回しか性能響かないからあれだけど、Rustの方が断然速いし、SPAだからルートの設定も全然しなくていいし、Rustの方でフロントページも返した方がいいんじゃないかと思ってるんだけども
要はRustを実行すればポート別に2つサーバーが立ち上がるようにするってこと
クライアント用サーバーは初回しか性能響かないからあれだけど、Rustの方が断然速いし、SPAだからルートの設定も全然しなくていいし、Rustの方でフロントページも返した方がいいんじゃないかと思ってるんだけども
要はRustを実行すればポート別に2つサーバーが立ち上がるようにするってこと
887デフォルトの名無しさん
2020/07/25(土) 18:01:19.70ID:n+xx7yT/ RocketってRust公式サイトにも使われてるのか
迷ったらRocketで良さそうだな
迷ったらRocketで良さそうだな
888デフォルトの名無しさん
2020/07/26(日) 03:19:09.22ID:XCGG5OQ8 diesel使いづらくない?
889デフォルトの名無しさん
2020/07/26(日) 18:57:03.68ID:uWZribv0 rustcの-C llvm-args=が取り得るオプションの説明ってどこかに書いてある?
clangのttps://clang.llvm.org/docs/ClangCommandLineReference.html#x86
あたりがそれっぽいけど説明が全くないのでデフォルト値も効果もよく判らない
clangのttps://clang.llvm.org/docs/ClangCommandLineReference.html#x86
あたりがそれっぽいけど説明が全くないのでデフォルト値も効果もよく判らない
890デフォルトの名無しさん
2020/07/26(日) 22:31:29.89ID:T2XYMYOv >>889
ここに書いてあるけど'--help'を渡せば一覧表示されるみたいよ
https://doc.rust-lang.org/rustc/codegen-options/index.html#llvm-args
$ rustc -C llvm-args='--help'
ここに書いてあるけど'--help'を渡せば一覧表示されるみたいよ
https://doc.rust-lang.org/rustc/codegen-options/index.html#llvm-args
$ rustc -C llvm-args='--help'
891デフォルトの名無しさん
2020/07/26(日) 23:02:23.88ID:XCGG5OQ8 あるモジュールクラスを別のモジュールで使いたい場合ってどう宣言するのが正しいの?
正直ドキュメント読んでも分からん
正直ドキュメント読んでも分からん
892デフォルトの名無しさん
2020/07/26(日) 23:58:47.45ID:uWZribv0 >>890
サンキュ。そう使うのかよw うちの環境では
>rustc -C llvm-args=--help ←'を付けると怒られる
でそれっぽいのが得られました。amd64で使用命令を選択するようなオプションは無いのか・・・
サンキュ。そう使うのかよw うちの環境では
>rustc -C llvm-args=--help ←'を付けると怒られる
でそれっぽいのが得られました。amd64で使用命令を選択するようなオプションは無いのか・・・
893デフォルトの名無しさん
2020/07/27(月) 00:46:16.95ID:TQCIWmFu --helpの最後に出てたけど
利用可能なオプションを全部表示するには
llvm-args=--help-hiddenってするみたい
利用可能なオプションを全部表示するには
llvm-args=--help-hiddenってするみたい
894デフォルトの名無しさん
2020/07/27(月) 09:47:21.61ID:s6eJseAH chronoのnext_monthないのってどう実現すればできる?
895デフォルトの名無しさん
2020/07/27(月) 10:10:01.73ID:0SvTsOI7 >>894
そもそもnext_monthに何を期待するかによると思うが。30日後?31日後?翌月の同じ日?それが存在しない場合は?とか。その辺がはっきりすれば、その通りに実装すればいい。
そもそもnext_monthに何を期待するかによると思うが。30日後?31日後?翌月の同じ日?それが存在しない場合は?とか。その辺がはっきりすれば、その通りに実装すればいい。
896デフォルトの名無しさん
2020/07/27(月) 10:18:30.24ID:0SvTsOI7897デフォルトの名無しさん
2020/07/27(月) 16:16:44.20ID:s6eJseAH >>896
ありがとう、結局next_month自分で実装したけど、かなり頻繁に使われる類のメソッドだから正直きついな
with_monthもoptionで返すから31 -> 30の次月遷移したとしても安全だから実装しない理由が分かんないな
chronoは変なとこには手回ってるしよくわからん
ありがとう、結局next_month自分で実装したけど、かなり頻繁に使われる類のメソッドだから正直きついな
with_monthもoptionで返すから31 -> 30の次月遷移したとしても安全だから実装しない理由が分かんないな
chronoは変なとこには手回ってるしよくわからん
898デフォルトの名無しさん
2020/07/27(月) 18:03:20.70ID:SSpP96W4 >>897
issueはあるけど別に誰かが反対しているわけでもなく、
単に誰も実装してないだけじゃない?
PR出してみればいいと思うけど。
https://github.com/chronotope/chrono/issues/290
issueはあるけど別に誰かが反対しているわけでもなく、
単に誰も実装してないだけじゃない?
PR出してみればいいと思うけど。
https://github.com/chronotope/chrono/issues/290
899デフォルトの名無しさん
2020/07/28(火) 16:26:39.82ID:0KPYC4VC900デフォルトの名無しさん
2020/07/29(水) 11:56:30.09ID:blHj/j43 ed25519の公開鍵のssh-ed25519 ******の部分が欲しくて、ed25519_dalekっていうクレートで鍵作ってるんだけどPublicKey構造体のas_bytesでとってくるバイト列をstr::from_utf8でしてもエラーが出て秘密鍵の***部分にならないんだけど、どうすればいいか分かる?
https://docs.rs/ed25519-dalek/1.0.0-pre.4/ed25519_dalek/struct.PublicKey.html
https://docs.rs/ed25519-dalek/1.0.0-pre.4/ed25519_dalek/struct.PublicKey.html
901デフォルトの名無しさん
2020/07/29(水) 20:03:32.01ID:B1rudV7D 1byteずつ print!("{:02x}", b) するとかではなく?
902デフォルトの名無しさん
2020/07/29(水) 21:31:44.28ID:4K5iZ0U7 >>900
str::from_utf8でエラーになるのは
0~127までのUTF-8互換のASCII以外の文字が含まれてるからでは?
pemで見れる公開鍵のssh-ed25519 ******の部分は
keyの種別とDERエンコードしたkeyの値をBase64にしたものらしい
str::from_utf8でエラーになるのは
0~127までのUTF-8互換のASCII以外の文字が含まれてるからでは?
pemで見れる公開鍵のssh-ed25519 ******の部分は
keyの種別とDERエンコードしたkeyの値をBase64にしたものらしい
903デフォルトの名無しさん
2020/07/30(木) 13:54:57.65ID:AECjseqQ904デフォルトの名無しさん
2020/07/31(金) 22:54:06.06ID:Emo7hM/W bindgenにwindowsはllvmのプリビルドバイナリをインストールしなさいと書いてあるけど、
LIBCLANG_PATH設定し忘れるとwinのプリビルドバイナリには含まれてないllvm-configを使って<LLVM_ROOT>/binまでのパスを探すんで
llvm-configがないって怒られる罠がある。
LIBCLANG_PATHタイポして時間潰してしまった。
LIBCLANG_PATH設定し忘れるとwinのプリビルドバイナリには含まれてないllvm-configを使って<LLVM_ROOT>/binまでのパスを探すんで
llvm-configがないって怒られる罠がある。
LIBCLANG_PATHタイポして時間潰してしまった。
905デフォルトの名無しさん
2020/08/01(土) 14:02:57.08ID:cK8sGWsa やっぱactixよりrocketだな
906デフォルトの名無しさん
2020/08/01(土) 14:09:11.29ID:sGuB7emE >>905
その理由は?
その理由は?
907デフォルトの名無しさん
2020/08/01(土) 15:02:20.03ID:Sq3FCv8n なんか速そうじゃん
908デフォルトの名無しさん
2020/08/01(土) 15:19:22.53ID:cK8sGWsa >>906
ドキュメントがしっかりしてそう
ドキュメントがしっかりしてそう
909デフォルトの名無しさん
2020/08/01(土) 16:43:51.04ID:Gnfef8LF unsafeの個数が少ない方が勝ちって事でいいんじゃない?
910デフォルトの名無しさん
2020/08/01(土) 22:13:51.53ID:cK8sGWsa rocketってmultipartサポートしてないのか
911小石茶輝
2020/08/01(土) 23:31:58.80ID:hdo7vbOv unsafe という機能があるのは unsafe が必要だからです。
設計方針に対して必要以上に unsafe があるのはダメですが、
少なければ少ないほど良いというわけでもありません。
たとえば C++ を使っているときだって、
グラフィックドライバを書くときとかは
どうしたって (C++ 的には) 行儀の悪い書き方になってしまうでしょう。
行儀の悪い部分はなるべく低レイヤに押し込めて、
ロジック層が綺麗になるようにするのが望ましいなどといった習慣はありますが、
どの程度にするかの程度問題は設計方針によります。
actix は rocket よりも unsafe を多用してはいますが、
意図のはっきりした unsafe です。
あまりにも unsafe が多すぎるならもう Rust 使うのやめろよと思うかもしれませんが、
行儀の悪い書き方 (unsafe) がより明示的であるというだけでも
C++ よりは少しマシでしょう。
設計方針に対して必要以上に unsafe があるのはダメですが、
少なければ少ないほど良いというわけでもありません。
たとえば C++ を使っているときだって、
グラフィックドライバを書くときとかは
どうしたって (C++ 的には) 行儀の悪い書き方になってしまうでしょう。
行儀の悪い部分はなるべく低レイヤに押し込めて、
ロジック層が綺麗になるようにするのが望ましいなどといった習慣はありますが、
どの程度にするかの程度問題は設計方針によります。
actix は rocket よりも unsafe を多用してはいますが、
意図のはっきりした unsafe です。
あまりにも unsafe が多すぎるならもう Rust 使うのやめろよと思うかもしれませんが、
行儀の悪い書き方 (unsafe) がより明示的であるというだけでも
C++ よりは少しマシでしょう。
912デフォルトの名無しさん
2020/08/06(木) 21:31:08.70ID:3hCyvjau rust案件が出てこないのは何で?
913小石茶輝
2020/08/06(木) 23:35:19.16ID:m6Z7F3X/ 出てますよ。
あなたがそれをキャッチする立場にないだけです。
あなたがそれをキャッチする立場にないだけです。
914デフォルトの名無しさん
2020/08/08(土) 01:19:04.76ID:4kKr75Ow stdの中でこれは外部ライブラリにした方がいいんじゃないかなって思うやつある?
逆に外部ライブラリからstdにした方がいいんじゃないかってやつとかもある?
逆に外部ライブラリからstdにした方がいいんじゃないかってやつとかもある?
915デフォルトの名無しさん
2020/08/08(土) 06:00:59.71ID:6YjyRljP >>914
乱数ライブラリが標準ライブラリに入ってない言語とか他にあんの?
乱数ライブラリが標準ライブラリに入ってない言語とか他にあんの?
916デフォルトの名無しさん
2020/08/09(日) 00:20:40.65ID:ayHdPpdd 乱数は用途によって必要な性質が色々だからなぁ。
どの分野を優遇すべきかってのは自明ではないでしょ。
全部盛りにするのも Rust 的ではないし。
でも、どの乱数ライブラリを使うにしても同じようなインターフェイスだとありがたいので、
乱数ライブラリが満たすべき標準的なトレイトが提供されて欲しいし、
そのサンプル的な位置づけでひとつくらいは乱数ライブラリが入っていてもいいかなとは思う。
どの分野を優遇すべきかってのは自明ではないでしょ。
全部盛りにするのも Rust 的ではないし。
でも、どの乱数ライブラリを使うにしても同じようなインターフェイスだとありがたいので、
乱数ライブラリが満たすべき標準的なトレイトが提供されて欲しいし、
そのサンプル的な位置づけでひとつくらいは乱数ライブラリが入っていてもいいかなとは思う。
>>916
MT だけでいいと思うのですが
MT だけでいいと思うのですが
918はちみつ餃子 ◆8X2XSCHEME
2020/08/09(日) 00:43:58.48ID:ayHdPpdd >>918
確かに暗号にMTを使うのはダメですね、暗号用には crypt-MT がありますね
確かに暗号にMTを使うのはダメですね、暗号用には crypt-MT がありますね
920デフォルトの名無しさん
2020/08/09(日) 20:40:18.77ID:mU0jSAp3 今はもうMTもそこまで・・・って話じゃないっけ
randクレート見るとそんなこと書いてあったような
randクレート見るとそんなこと書いてあったような
921デフォルトの名無しさん
2020/08/09(日) 20:55:04.69ID:wx6Xp3NP 他の言語だって完璧な乱数だと思ってなくても
利用者の利便性を考えて標準ライブラリに含めてるんだろ
それが無いRustは変
利用者の利便性を考えて標準ライブラリに含めてるんだろ
それが無いRustは変
922デフォルトの名無しさん
2020/08/10(月) 00:22:38.94ID://dLtD59 今どきMT法なんか使わん。
>乱数ライブラリが満たすべき標準的なトレイトが提供されて欲しいし、
rand_coreがそれに当たるけどcoreだけだとバイト配列しか取得できんので分布器に生成器渡せん。
未知の生成器の実装すべて含めるのは無理、既知のものに絞っても要求する特性が人によって違うから標準にするのは無理。
結局はこうなるが、俺も標準ライブラリに乱数ほしい。
>乱数ライブラリが満たすべき標準的なトレイトが提供されて欲しいし、
rand_coreがそれに当たるけどcoreだけだとバイト配列しか取得できんので分布器に生成器渡せん。
未知の生成器の実装すべて含めるのは無理、既知のものに絞っても要求する特性が人によって違うから標準にするのは無理。
結局はこうなるが、俺も標準ライブラリに乱数ほしい。
923デフォルトの名無しさん
2020/08/10(月) 01:32:59.38ID:5CSXOdci cargo使ってるから別ライブラリでもあまり困らない
こと乱数に関してはデファクトスタンダードのcraete決まってるし迷うことないしね
標準ライブラリに入ってて欲しいのは初学者がcrate知らないとか探すのが手間だとか、コンパイルタイムが延びるのが嫌だとか、そういう理由?
こと乱数に関してはデファクトスタンダードのcraete決まってるし迷うことないしね
標準ライブラリに入ってて欲しいのは初学者がcrate知らないとか探すのが手間だとか、コンパイルタイムが延びるのが嫌だとか、そういう理由?
924デフォルトの名無しさん
2020/08/10(月) 02:16:28.69ID:PbB9rIkO stdに入れて欲しいのはrandよりregexだな
標準ライブラリとして責任もってメンテされていくものなのかどうかが重要
標準ライブラリとして責任もってメンテされていくものなのかどうかが重要
925デフォルトの名無しさん
2020/08/10(月) 03:21:04.11ID:5WLgK92c926デフォルトの名無しさん
2020/08/10(月) 04:22:44.62ID:qbs6FNC5 Authors のところが The Rust Project Developers ってなってるやつは
事実上の標準みたいなもんと思ってええんけ?
将来の互換性が保証されるかどうかはともかくとして Rust と足並みがそろっているとは
思っていいよね?
事実上の標準みたいなもんと思ってええんけ?
将来の互換性が保証されるかどうかはともかくとして Rust と足並みがそろっているとは
思っていいよね?
927デフォルトの名無しさん
2020/08/10(月) 05:17:58.40ID:ELRN+pEU jsonrpc使ってみた。不可解な実装でワロタ
928デフォルトの名無しさん
2020/08/10(月) 23:12:44.03ID:xrY++dmg 外に出されたunicode系ライブラリが更新止まってていつかstdがサポートするunicodeのバージョンと互換性失うんじゃないかと思う。
>>926
事実上の標準っていうかc++のboostみたいなもんだけど足並み揃ってるかは別。
>>926
事実上の標準っていうかc++のboostみたいなもんだけど足並み揃ってるかは別。
929デフォルトの名無しさん
2020/08/11(火) 13:18:54.05ID:vv5Ejmf9 use std::ops::{Rem, AddAssign};
pub fn get_days_of_month<T: Rem>(year: T, month: u32) -> u32 {
match month {
2 => if is_leap_year(year) { 29 } else { 28 },
4 | 6 | 9 | 11 => 30,
_ => 31,
}
}
pub fn is_leap_year<T: Rem>(year: T) -> bool {
match ((year % 100 as T) as i32, (year % 400 as T) as i32) {
(_, 0) => true,
(0, _) => false,
_ => year % 4 == 0,
}
}
pub fn next_day<N, T: AddAssign + Rem>(mut year: T, mut month: u32, mut day: u32) -> (T, u32, u32) {
let days_of_month = get_days_of_month(year, month);
day += 1;
if day > days_of_month {
month += 1;
day = 1;
}
if month > 12 {
year += 1;
month = 1;
}
(year, month, day)
}
non-primitive castエラーが出るんだけどどうすれば解決できる?
1 as Tでもできないし、1.parse()はstrじゃないから出来ない
pub fn get_days_of_month<T: Rem>(year: T, month: u32) -> u32 {
match month {
2 => if is_leap_year(year) { 29 } else { 28 },
4 | 6 | 9 | 11 => 30,
_ => 31,
}
}
pub fn is_leap_year<T: Rem>(year: T) -> bool {
match ((year % 100 as T) as i32, (year % 400 as T) as i32) {
(_, 0) => true,
(0, _) => false,
_ => year % 4 == 0,
}
}
pub fn next_day<N, T: AddAssign + Rem>(mut year: T, mut month: u32, mut day: u32) -> (T, u32, u32) {
let days_of_month = get_days_of_month(year, month);
day += 1;
if day > days_of_month {
month += 1;
day = 1;
}
if month > 12 {
year += 1;
month = 1;
}
(year, month, day)
}
non-primitive castエラーが出るんだけどどうすれば解決できる?
1 as Tでもできないし、1.parse()はstrじゃないから出来ない
930デフォルトの名無しさん
2020/08/11(火) 13:40:48.45ID:+G0SPKi4 >>929
num-traitsのOneで制約すればT::one()でT型の1が得られる。
num-traitsのOneで制約すればT::one()でT型の1が得られる。
931デフォルトの名無しさん
2020/08/11(火) 17:18:59.34ID:vv5Ejmf9932デフォルトの名無しさん
2020/08/11(火) 18:03:39.15ID:9N1UW9Um933デフォルトの名無しさん
2020/08/13(木) 18:54:36.47ID:ilszh1HB ゲーム開発言語はrustに移行されるかな?
934デフォルトの名無しさん
2020/08/13(木) 23:00:02.19ID:XvzayrDj プログラミング言語「Rust」、Linuxカーネルでの採用の道を模索
https://japan.zdnet.com/article/35157012/
https://japan.zdnet.com/article/35157012/
935デフォルトの名無しさん
2020/08/14(金) 22:24:07.75ID:O4QC6Gpt936デフォルトの名無しさん
2020/08/15(土) 03:05:14.85ID:py5/TuN/ ラズパイとかでコンパイルすると糞遅いのなんとかならんかな
937デフォルトの名無しさん
2020/08/15(土) 06:26:45.05ID:KV0ftL1X 禁断のCPU換装とかないの?
DOS/Vパワーリポートとか買ってみたら。
DOS/Vパワーリポートとか買ってみたら。
938デフォルトの名無しさん
2020/08/15(土) 06:47:50.15ID:c5MlwM8B >>936
クロスコンパイルすれば?
クロスコンパイルすれば?
939デフォルトの名無しさん
2020/08/15(土) 21:53:54.93ID:aUDFhJGy というよりなんでセルフコンパイルするんや?
940デフォルトの名無しさん
2020/08/15(土) 23:19:51.01ID:aMnBEbVz rustじゃないけど適当な設定で大きいライブラリビルドしたら過熱でラズパイ落ちた事あるわ
941デフォルトの名無しさん
2020/08/17(月) 18:33:01.49ID:L4/FmhKh Rより低いRust...
https://japan.zdnet.com/article/35158190/
https://japan.zdnet.com/article/35158190/
942デフォルトの名無しさん
2020/08/18(火) 04:18:41.28ID:Hi0tASG0 rustって日本で人気という勝手なイメージがあるけど世界的にはどうなんだろ
943デフォルトの名無しさん
2020/08/18(火) 04:32:12.17ID:G86KA+uV ルスト?なにそれ?てかそんなの聞いた事ないんだけど
944デフォルトの名無しさん
2020/08/18(火) 15:54:29.74ID:GTs4Jp23 >>941
Goの方がマスコットがかわいいからしゃーない。
Goの方がマスコットがかわいいからしゃーない。
945デフォルトの名無しさん
2020/08/18(火) 16:39:58.87ID:A66tt0Hu マスコットが気持ち悪い言語と言えばLISP
946デフォルトの名無しさん
2020/08/18(火) 18:04:09.30ID:FC5XBFLB947デフォルトの名無しさん
2020/08/18(火) 18:17:07.57ID:xqTakpBf >>941
調査によって、まちまちだな。
StackOverflowでは、Rustは好きな言語ランキングでは、五年連続Topらしいが、
「人気」は低い。
今のところ「好き」だが「人気」は無いのがRust。
恐らくこの場合、「人気」= 「Popular」のことで、英語の Poluarは、
「人気」と言う意味のほかに、「普及している」とか「一般的」、というような
意味もあるのでややこしい:
https://news.mynavi.jp/article/20190412-807191/
調査によって、まちまちだな。
StackOverflowでは、Rustは好きな言語ランキングでは、五年連続Topらしいが、
「人気」は低い。
今のところ「好き」だが「人気」は無いのがRust。
恐らくこの場合、「人気」= 「Popular」のことで、英語の Poluarは、
「人気」と言う意味のほかに、「普及している」とか「一般的」、というような
意味もあるのでややこしい:
https://news.mynavi.jp/article/20190412-807191/
948デフォルトの名無しさん
2020/08/18(火) 18:30:54.90ID:xqTakpBf 「好き」ならば「学びたい」のだろう、と思いきや、そうでもないということか。
「最も好きな言語は何ですか?」
という問に対して、相手に馬鹿にされないためには、Rustが丁度よい言語
である気はする。
でも、結構、実際に使用したいと思っているどうかは別。
俺もそんな質問されたら、答えに窮して Rust と答えてしまうかも知れんが、
使う気はほぼ無い。
「最も好きな言語は何ですか?」
という問に対して、相手に馬鹿にされないためには、Rustが丁度よい言語
である気はする。
でも、結構、実際に使用したいと思っているどうかは別。
俺もそんな質問されたら、答えに窮して Rust と答えてしまうかも知れんが、
使う気はほぼ無い。
949デフォルトの名無しさん
2020/08/18(火) 21:58:33.67ID:eVuhfWpC Rustはターゲットになる開発領域が狭くてどう足掻いても大人気誰も彼もRust!なんてことにはならないよ
C++が広範な領域で使われてたのは選択肢のなさとWinのAPI基準の1つなのとCとの運用のしやすさ
選択肢が増えてWinもよっぽどなことしなけりゃC#があるしCをコールする分にはどの言語も十分改善されてきた
0から作るある程度のパフォーマンスを求めるプロダクトならGoがあって、アセンブリと連携するけどcgoのオーバーヘッドやGCのオーバーヘッドが気になるみたいな際際じゃなけりゃRustにならない
計算高速化のcalleeとしては安全性があまり旨味のない要素だからC++の選択がまだ強い
以上に加えてエラー周りとかアセンブリ連携もnightlyがあってまだ熟してない部分があり厳しい立ち位置にいるという認識だ
C++が広範な領域で使われてたのは選択肢のなさとWinのAPI基準の1つなのとCとの運用のしやすさ
選択肢が増えてWinもよっぽどなことしなけりゃC#があるしCをコールする分にはどの言語も十分改善されてきた
0から作るある程度のパフォーマンスを求めるプロダクトならGoがあって、アセンブリと連携するけどcgoのオーバーヘッドやGCのオーバーヘッドが気になるみたいな際際じゃなけりゃRustにならない
計算高速化のcalleeとしては安全性があまり旨味のない要素だからC++の選択がまだ強い
以上に加えてエラー周りとかアセンブリ連携もnightlyがあってまだ熟してない部分があり厳しい立ち位置にいるという認識だ
951デフォルトの名無しさん
2020/08/18(火) 22:21:20.07ID:y+NJXGZa >>949
その中だとパフォーマンス的にはGoでいいけど言語仕様が簡素すぎて辛い、みたいな層の受け皿としてRustが使われてるケースはありそうかな。
ScalaがいいけどJVMは厳しい、みたいなのとかも。
まぁニッチなのは間違いない。
その中だとパフォーマンス的にはGoでいいけど言語仕様が簡素すぎて辛い、みたいな層の受け皿としてRustが使われてるケースはありそうかな。
ScalaがいいけどJVMは厳しい、みたいなのとかも。
まぁニッチなのは間違いない。
952デフォルトの名無しさん
2020/08/18(火) 22:56:18.34ID:tqFHaZPp Microsoftが興味持ってるからC# + Rustが未来の姿だ
UIはC#
UIはC#
953デフォルトの名無しさん
2020/08/18(火) 23:14:15.49ID:eVuhfWpC >>950
TensorflowとかPytorchのバックはC++だよね
これらは当然CUDAとの兼ね合いであるのは間違いないけど、CUDA側がRustではなくC++を選択してる意図として安全性の旨味のなさは間違ってないと思う
C++の仕様が先立つ言語であることや人口の多さ、既存資産との兼ね合いの比重のが大きいだろうけどね
TensorflowとかPytorchのバックはC++だよね
これらは当然CUDAとの兼ね合いであるのは間違いないけど、CUDA側がRustではなくC++を選択してる意図として安全性の旨味のなさは間違ってないと思う
C++の仕様が先立つ言語であることや人口の多さ、既存資産との兼ね合いの比重のが大きいだろうけどね
954デフォルトの名無しさん
2020/08/18(火) 23:33:09.98ID:bX3QY+Cn >>953
そりゃCUDA1.0の頃(もう10年以上前だぞ)にRustなんて影も形もなかったんだから選択されないのは当然だろう。
その視点で見るならここ1-2年で開発開始されるプロジェクトでどの程度採用されるか、では?
今だとブロックチェーン界隈とかかね。
そりゃCUDA1.0の頃(もう10年以上前だぞ)にRustなんて影も形もなかったんだから選択されないのは当然だろう。
その視点で見るならここ1-2年で開発開始されるプロジェクトでどの程度採用されるか、では?
今だとブロックチェーン界隈とかかね。
955デフォルトの名無しさん
2020/08/19(水) 01:11:27.31ID:I1IAXvPk >>949
rustは元からサーバーは視野に入れてないだろ
rustは元からサーバーは視野に入れてないだろ
956デフォルトの名無しさん
2020/08/19(水) 03:59:31.08ID:HXpA5baw "abc".split("").collect::<Vec<_>>()は["", "a", "b", "c", ""]になるんだけど、うまく空白なしでスプリットでできない?
957デフォルトの名無しさん
2020/08/19(水) 04:27:22.19ID:0Kuyi32B .charsじゃなくてどうしても.split使ってvecにしたいってことなのか?
958デフォルトの名無しさん
2020/08/19(水) 04:32:39.30ID:0Kuyi32B "abc".split_terminator("").skip(1).collect::<Vec<_>>();でできるけど
普通はchars使うやろ
普通はchars使うやろ
959デフォルトの名無しさん
2020/08/19(水) 10:35:25.48ID:HXpA5baw960デフォルトの名無しさん
2020/08/19(水) 10:42:04.16ID:3t1Yn2l3 charと&strって&strのがでかくね????
961デフォルトの名無しさん
2020/08/19(水) 10:54:53.71ID:HXpA5baw962デフォルトの名無しさん
2020/08/19(水) 11:03:27.99ID:6EiBw6oz >>961
でも最後にVecに格納するポインタは一文字ごとに8バイト取られるんだから、charの方が小さくない?
でも最後にVecに格納するポインタは一文字ごとに8バイト取られるんだから、charの方が小さくない?
963デフォルトの名無しさん
2020/08/19(水) 12:52:58.21ID:ysyRx3At &strはfat pointerだから16byte じゃね
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 高市内閣の支持率72%、高い水準維持…読売世論調査 [どどん★]
- 【発信国情報】X、プロフィール上に「VPN使用の有無」も表示か… [BFU★]
- 高市総理の“失言”を引き出したはずがSNSで総スカン ビジネスモデルが崩壊した「立憲民主党」の迷走 [♪♪♪★]
- 高市首相の台湾有事答弁「問題ない」50% 「問題があったと思う」25%を大きく上回る 毎日新聞世論調査 ★3 [尺アジ★]
- 【外交】オーストラリア市民党全国委員長「高市首相の発言は極めて破壊的」 [1ゲットロボ★]
- 【発信国情報】X、プロフィール上に「VPN使用の有無」も表示か… ★2 [BFU★]
- 【日中友好】高市「中国と話す機会が無かったわ!対話は常にオープン、扉を閉ざしてはいないし、今後も主張すべきことは主張していくヨ」 [219241683]
- 【日本一決定戦】大阪府民ちょっと来いkskすっぞ【ミャクミャク様が大屋根リングでお休みやでええ】
- 高市さんのG20遅刻問題洒落にならないことになってた、日本抜きで全会一致で中国寄りの首脳宣言が採択されてそのまま有無を言わさず閉幕 [709039863]
- 【日本一決定戦】愛知県民ちょっと来やぁ!kskしてって【三河も来い】
- 【📛専】とうふさんすこすこ😊👎スレッド【とうふゲームズ🏡】
- 🕳🦆🐤🐤🐤…
