公式
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 part22
https://mevius.5ch.net/test/read.cgi/tech/1705760500/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
探検
Rust part23
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/02/23(金) 17:37:52.13ID:CheDQupm666デフォルトの名無しさん
2024/04/12(金) 12:33:34.40ID:rAepnpk2667デフォルトの名無しさん
2024/04/12(金) 12:43:39.99ID:6xQx5uEa668デフォルトの名無しさん
2024/04/12(金) 13:04:32.76ID:qd6Rxygz とりあえず感覚で一行目から罵倒する人
669デフォルトの名無しさん
2024/04/12(金) 15:24:23.71ID:XC+pkKeZ670デフォルトの名無しさん
2024/04/12(金) 16:22:22.83ID:RDQRwL9V >ほとんどの言語がこの方式なのに何を気持ち悪がっているのだろう
からの
>UFCSはメソッド名空間の汚染であるため、まともな言語では採用されていない。
schizoかな?
からの
>UFCSはメソッド名空間の汚染であるため、まともな言語では採用されていない。
schizoかな?
671デフォルトの名無しさん
2024/04/12(金) 17:02:05.38ID:oSrgtnnN それらの件でもRustの仕様が優秀すぎ
672デフォルトの名無しさん
2024/04/12(金) 20:51:13.79ID:NYkXEvAJ >>670
虚言癖などと同じパーソナリティ障害の一種だから生温かく見守ってやれ
虚言癖などと同じパーソナリティ障害の一種だから生温かく見守ってやれ
673デフォルトの名無しさん
2024/04/12(金) 22:18:23.28ID:HgYc1X5O おじいちゃんは昼だけ起きてて
夕方を過ぎると寝てしまう
夕方を過ぎると寝てしまう
674デフォルトの名無しさん
2024/04/12(金) 22:50:23.70ID:3nYhUDoK RUSTがトレンドに!!
675デフォルトの名無しさん
2024/04/12(金) 23:58:18.71ID:lpyrPPhz >>667
つジェネリック
つジェネリック
676デフォルトの名無しさん
2024/04/13(土) 04:39:15.20ID:0YGiYUZr ジェネリックにも同じように安全に適用できるのはRustにトレイト境界があるおかげか
677デフォルトの名無しさん
2024/04/13(土) 07:36:48.57ID:beXAxXwF トレイト境界はc++ conceptみたいに同じ関数集合ならOKなんだっけ?
柔軟性のために外延性は欲しいところ。
柔軟性のために外延性は欲しいところ。
678デフォルトの名無しさん
2024/04/13(土) 08:07:59.96ID:S51MIqUj 異なる型間の共通項をトレイトとして切り出すだけでよく
コードを美しく整理して保守性を高めやすい
コードを美しく整理して保守性を高めやすい
679デフォルトの名無しさん
2024/04/13(土) 13:32:34.24ID:OrtqC7Lq 敬称ないせいで苦労してるんだってな
680デフォルトの名無しさん
2024/04/13(土) 13:36:34.54ID:F3jinTSj 143 デフォルトの名無しさん 2024/04/07(日) 19:27
純関数型言語でなくても
モダンなプログラミング言語
Go、Rust、Zig、Nim、Julia、Elixirなどは
クラスおよびその継承を言語仕様から排除しておりクラスは存在しない
それら各々の言語は全く異なる方針を採っている言語だがクラス排除だけは全てが同じ方針である
クラスとその継承は悪手であるとプログラミング言語界では結論が出ている
純関数型言語でなくても
モダンなプログラミング言語
Go、Rust、Zig、Nim、Julia、Elixirなどは
クラスおよびその継承を言語仕様から排除しておりクラスは存在しない
それら各々の言語は全く異なる方針を採っている言語だがクラス排除だけは全てが同じ方針である
クラスとその継承は悪手であるとプログラミング言語界では結論が出ている
681デフォルトの名無しさん
2024/04/13(土) 16:56:52.49ID:L60jXWVE 継承がなくても構造体にメソッドついてたら実質クラスだろ
関数に構造体渡してたらそれはクラスじゃないけど
関数に構造体渡してたらそれはクラスじゃないけど
682デフォルトの名無しさん
2024/04/14(日) 23:56:10.96ID:RjsA2T1t >>681
構造体にメソッドが付くことはカプセル化と言う
クラス=カプセル化+実装継承 なのでクラスとカプセル化は異なる
このクラスを成り立たせている実装継承が悪であるためにモダンな言語群がクラスを採用しなかった
実装継承とは具体型が別の具体型を継承することを指す
クラスでは派生クラスが基底クラスを継承するため悪の実装継承となる
正しい方法はインタフェイスやトレイトなどの抽象型からのみ継承する
つまりクラスを完全に排除できるためモダンな言語群にクラスはない
構造体にメソッドが付くことはカプセル化と言う
クラス=カプセル化+実装継承 なのでクラスとカプセル化は異なる
このクラスを成り立たせている実装継承が悪であるためにモダンな言語群がクラスを採用しなかった
実装継承とは具体型が別の具体型を継承することを指す
クラスでは派生クラスが基底クラスを継承するため悪の実装継承となる
正しい方法はインタフェイスやトレイトなどの抽象型からのみ継承する
つまりクラスを完全に排除できるためモダンな言語群にクラスはない
683デフォルトの名無しさん
2024/04/15(月) 00:05:55.58ID:R9iMDmBn 用語も色々。
Rust で言うところのトレイトみたいなやつを Haksell とかでは型クラスって呼んでるし、
JavaScript のクラスの実体は (特定のプロトタイプに紐づいたオブジェクトを生成するための) 関数。
極論すればクラスと名付けたものがクラス。
Rust でクラスと呼んでない以上はもう別概念として捉えるしかしょうがないだろ。
C++ のクラス的なことの一部を Rust でも「可能ではある」というという主張なら賛成するけど、
クラスとは何かを定義せずにクラスかどうかを論じても無意味。
Rust で言うところのトレイトみたいなやつを Haksell とかでは型クラスって呼んでるし、
JavaScript のクラスの実体は (特定のプロトタイプに紐づいたオブジェクトを生成するための) 関数。
極論すればクラスと名付けたものがクラス。
Rust でクラスと呼んでない以上はもう別概念として捉えるしかしょうがないだろ。
C++ のクラス的なことの一部を Rust でも「可能ではある」というという主張なら賛成するけど、
クラスとは何かを定義せずにクラスかどうかを論じても無意味。
684デフォルトの名無しさん
2024/04/15(月) 00:26:07.32ID:rd9697wK 型クラスとクラスは全く異なるので混乱しない
クラスとはクラス継承すなわち親クラスから子クラスへの実装継承できるものを指す
JavaScriptはプロトタイプを親として実装継承するためクラス
一方でRustにクラスはない
クラスとはクラス継承すなわち親クラスから子クラスへの実装継承できるものを指す
JavaScriptはプロトタイプを親として実装継承するためクラス
一方でRustにクラスはない
685デフォルトの名無しさん
2024/04/15(月) 01:47:00.44ID:YLFAz6O4686デフォルトの名無しさん
2024/04/15(月) 01:58:25.85ID:CPtYka/u 話は非常に単純
具体的な型から具体的な型への継承が実装継承でこれがよくない
classは具体的な型superclassから具体的な型subclassへの継承があるから実装継承
interfaceやtraitは具体的な型ではなく抽象的な型なので該当しない
最近の言語がclassのみ採用しなかった理由はその違い
具体的な型から具体的な型への継承が実装継承でこれがよくない
classは具体的な型superclassから具体的な型subclassへの継承があるから実装継承
interfaceやtraitは具体的な型ではなく抽象的な型なので該当しない
最近の言語がclassのみ採用しなかった理由はその違い
687デフォルトの名無しさん
2024/04/15(月) 02:39:20.65ID:zOelqs9y RustにはJavaのクラスはありません
RustはJavaではないからです
あたまいいね
RustはJavaではないからです
あたまいいね
688デフォルトの名無しさん
2024/04/15(月) 03:16:04.95ID:0QcDOjSQ Javaの生みの親であるJames Goslingも、
「もう一度最初からJavaを作り直すとしたら、どこを変更したいですか?」に対して、
「クラスを除外するでしょうね」と答えている。
その理由は、クラス継承が実装継承となっているためで、この設計を後悔していて、インターフェースによる継承が望ましいと述べている。
「もう一度最初からJavaを作り直すとしたら、どこを変更したいですか?」に対して、
「クラスを除外するでしょうね」と答えている。
その理由は、クラス継承が実装継承となっているためで、この設計を後悔していて、インターフェースによる継承が望ましいと述べている。
689デフォルトの名無しさん
2024/04/15(月) 08:31:26.40ID:Mqs/ngjj クラスのようなものでいいよ
690デフォルトの名無しさん
2024/04/15(月) 10:16:50.96ID:dcBtWsLv バカの一つ覚えの相手をしても時間の無駄
691デフォルトの名無しさん
2024/04/15(月) 12:54:52.68ID:f4iHJAq/ クラス継承のある言語でも今はクラス継承を使わない設計するのが良いとされてるので要らんよな
692デフォルトの名無しさん
2024/04/15(月) 21:09:43.00ID:97bFGSba それは単に使い分けが出来ない馬鹿な子向けの説明だぞ
693デフォルトの名無しさん
2024/04/16(火) 07:27:41.72ID:10PaZXAR >>691
言語仕様としてあった方が良いということ。
言語仕様としてあった方が良いということ。
694デフォルトの名無しさん
2024/04/16(火) 07:42:24.51ID:KU96szRc 馬鹿が使うとクソになる仕様がある言語は馬鹿をチームに入れただけで開発が即破綻するからクソ
695デフォルトの名無しさん
2024/04/16(火) 08:43:42.78ID:OvO8gS8m Javaの生みの親も言ってるようにクラス継承の機能はない方がいい
なくても困らない
あると問題を引き起こす
なくても困らない
あると問題を引き起こす
696デフォルトの名無しさん
2024/04/16(火) 09:30:25.53ID:YlYBNC7y そういうのは話半分に聞いておけばいいよ
nullを使ったのは失敗だったとか
後からそれらしいことを言ってるだけ
javaはクラスと継承が無くなったらまともに機能しない
interfaceにデフォルト実装がなかったので全部自前かコンポジションで実装することになったはず
nullを使ったのは失敗だったとか
後からそれらしいことを言ってるだけ
javaはクラスと継承が無くなったらまともに機能しない
interfaceにデフォルト実装がなかったので全部自前かコンポジションで実装することになったはず
697デフォルトの名無しさん
2024/04/16(火) 09:50:49.42ID:pgei3+18698デフォルトの名無しさん
2024/04/16(火) 09:55:41.24ID:YlYBNC7y 最初はなかったしずっと取り入れなかったのはそれがJAVA風じゃなかったから
今JAVAが生き残ってるのは最初の設計思想が世間に受け入れられたからであって
後から○○無くせばよかったと言うのは誤りで浅はか
NULLを無くせばよかったと言うが当時メジャーな手法でそれの代替手段がなかったのと同じ
今JAVAが生き残ってるのは最初の設計思想が世間に受け入れられたからであって
後から○○無くせばよかったと言うのは誤りで浅はか
NULLを無くせばよかったと言うが当時メジャーな手法でそれの代替手段がなかったのと同じ
699デフォルトの名無しさん
2024/04/16(火) 10:21:05.77ID:pgei3+18 今となってはclass継承は廃止でいい
700デフォルトの名無しさん
2024/04/16(火) 11:59:36.87ID:NkOUpCFP インターフェイスにも集合で言うところの外延性は欲しいところ。
701デフォルトの名無しさん
2024/04/16(火) 13:49:22.28ID:DzgCvS5T そういうの使いたいならTSがいいよ
702デフォルトの名無しさん
2024/04/16(火) 14:56:34.55ID:vP0l1V0c 具体的なデメリットって何なの?
703デフォルトの名無しさん
2024/04/16(火) 15:29:25.10ID:ePcpSD5e ダサい
704デフォルトの名無しさん
2024/04/16(火) 20:45:11.55ID:scEyspJl そういう感覚的なもの?
705デフォルトの名無しさん
2024/04/16(火) 22:20:54.32ID:pbIQ4i0L 基底クラスで保証してる内部条件を継承クラスで壊されやすい
Javaは基本的に全部オーバーライド可能でprivateとfinalで変な継承を抑えてたけど
C#はabstract/virtualかつsealedでない要素だけオーバーライド可能になってたと思う
古い知識だから最近の動向は知らない
Javaは基本的に全部オーバーライド可能でprivateとfinalで変な継承を抑えてたけど
C#はabstract/virtualかつsealedでない要素だけオーバーライド可能になってたと思う
古い知識だから最近の動向は知らない
706デフォルトの名無しさん
2024/04/17(水) 08:15:23.25ID:eua5YI/M Unreal EngineがRist対応するんだってね
707デフォルトの名無しさん
2024/04/17(水) 16:42:11.69ID:eua5YI/M Ristってなんだ、Rustだた
708デフォルトの名無しさん
2024/04/17(水) 21:06:33.89ID:ZcFRYo3q Rast
Rist
Rest
Rost
Rist
Rest
Rost
709デフォルトの名無しさん
2024/04/17(水) 21:31:42.40ID:O0zLY4aF Risp
710デフォルトの名無しさん
2024/04/18(木) 23:48:18.11ID:mul2o/Jt >>706
時代の流れだな
時代の流れだな
711デフォルトの名無しさん
2024/04/19(金) 17:19:41.25ID:QdSz4ItG 隙間作って床下チェスト収納ってできなくなった?動画みてるけどうまくできん
712デフォルトの名無しさん
2024/04/20(土) 17:39:26.03ID:pCmD4UWo shift-jisのファイルをBufReaderで1行ずつ読み込もうと思ったら無理でOKが流れてこない
全部読んでデコードして\nで切り分けるしかないの?
全部読んでデコードして\nで切り分けるしかないの?
713デフォルトの名無しさん
2024/04/20(土) 17:53:01.46ID:AAPU1iqE read_lineはutf-8じゃないと無理だけどread_untilならバイト列で1行ずつ取れそう
714デフォルトの名無しさん
2024/04/20(土) 22:11:31.95ID:pZNdwQSZ715デフォルトの名無しさん
2024/04/20(土) 22:28:20.55ID:pZNdwQSZ std::io::BufReader::new(encoding_rs_io::DecodeReaderBytesBuilder::new().encoding(Some(encoding_rs::SHIFT_JIS)).build(std::fs::File::open(SJIS_FILE)?)).lines()
716デフォルトの名無しさん
2024/04/21(日) 07:15:48.69ID:QKVewSeW BufReaderもFile::openもそのまま使える点がいいね
717デフォルトの名無しさん
2024/04/21(日) 10:23:00.52ID:Be3/0qjS718デフォルトの名無しさん
2024/04/21(日) 18:25:05.39ID:GAd5jyBU decoderが挟まるだけだよ
// UTF8の場合
let file = File::open(path)?;
let reader = BufReader::new(file);
for line in reader.lines() {
// SJISの場合
let file = File::open(path)?;
let decoder = DecodeReaderBytesBuilder::new()
.encoding(Some(SHIFT_JIS))
.build(file);
let reader = BufReader::new(decoder);
for line in reader.lines() {
// UTF8の場合
let file = File::open(path)?;
let reader = BufReader::new(file);
for line in reader.lines() {
// SJISの場合
let file = File::open(path)?;
let decoder = DecodeReaderBytesBuilder::new()
.encoding(Some(SHIFT_JIS))
.build(file);
let reader = BufReader::new(decoder);
for line in reader.lines() {
719デフォルトの名無しさん
2024/04/22(月) 06:09:19.12ID:kZ9sSSe5 バッファリングせず丸ごと贅沢にメモリ使っていいなら単純
let bytes = fs::read(path)?;
let (s, _, _) = SHIFT_JIS.decode(&bytes);
let reader = BufReader::new(s.as_bytes());
for line in reader.lines() {
let bytes = fs::read(path)?;
let (s, _, _) = SHIFT_JIS.decode(&bytes);
let reader = BufReader::new(s.as_bytes());
for line in reader.lines() {
720デフォルトの名無しさん
2024/04/22(月) 20:07:02.52ID:g+YSHIF5 コマンドラインからファイル名取るようにしたらパニック
windowsで文字コードが違うかららしいけどこういうバッドノウハウを開発者に積み重ねていかないと使えないのはめんどい
windowsで文字コードが違うかららしいけどこういうバッドノウハウを開発者に積み重ねていかないと使えないのはめんどい
721デフォルトの名無しさん
2024/04/22(月) 20:46:10.62ID:ZfX6SpnE 何を言ってんのw
722デフォルトの名無しさん
2024/04/22(月) 21:19:42.71ID:g+YSHIF5 知らないとそういう反応するんだろうけど
std::env::args_osを使ってOsStringを取って対処する必要があるんだよ
勉強になっただろ?
std::env::args_osを使ってOsStringを取って対処する必要があるんだよ
勉強になっただろ?
723デフォルトの名無しさん
2024/04/22(月) 21:24:48.26ID:g+YSHIF5 日本人だから日本語名が付いたファイルを扱う機会に恵まれてるからこういうことに出会える
アメリカ人だったらこういうのに出会わないでコーディングしてリリースしてるだろう
世界中で使ったらパスの問題で落ちるプログラムがガンガン量産されている
アメリカ人だったらこういうのに出会わないでコーディングしてリリースしてるだろう
世界中で使ったらパスの問題で落ちるプログラムがガンガン量産されている
724デフォルトの名無しさん
2024/04/22(月) 23:12:07.98ID:ljq3CdpU725デフォルトの名無しさん
2024/04/22(月) 23:32:38.83ID:cr/ZTax6726デフォルトの名無しさん
2024/04/22(月) 23:35:51.77ID:g+YSHIF5727デフォルトの名無しさん
2024/04/22(月) 23:42:55.88ID:g+YSHIF5 リリースした後の実行時のpanicを有り難がる信者
Rustのライブラリの思想がいまいち馴染みにくいと言うか素人が作るとこうなりますと言う見本
Rustのライブラリの思想がいまいち馴染みにくいと言うか素人が作るとこうなりますと言う見本
728デフォルトの名無しさん
2024/04/22(月) 23:57:01.81ID:kZ9sSSe5729デフォルトの名無しさん
2024/04/23(火) 00:03:29.34ID:aheV4X/O 馬鹿と話しててもらちが開かない
世界中で使ったらパスの問題で落ちるプログラムがガンガン量産されているのは事実
お前らそれを一個一個プルリク送ったりしてるのか?
世界中で使ったらパスの問題で落ちるプログラムがガンガン量産されているのは事実
お前らそれを一個一個プルリク送ったりしてるのか?
730デフォルトの名無しさん
2024/04/23(火) 00:13:45.98ID:aheV4X/O 所有権とか導入してバグを静的に弾こうとしてる割にはこういうところではガバガバ
世界中で英語じゃないwindows環境でpanicが起こるコードが蔓延してる
非合理的
世界中で英語じゃないwindows環境でpanicが起こるコードが蔓延してる
非合理的
731デフォルトの名無しさん
2024/04/23(火) 00:34:48.42ID:tNw43TTr そんなことより The Embedded Rust 読み始めたんです。
冒頭からリンカで割り込みベクタマップの取り方やら panic 無効にしての main 関数導入やら、HAL は自分でこさえるんだよね?と言わんばかりの内容。
おおむかしのMCU開発環境みたいで嫌いじゃないけど、arch 対応してないと敷居高いねこれ。
冒頭からリンカで割り込みベクタマップの取り方やら panic 無効にしての main 関数導入やら、HAL は自分でこさえるんだよね?と言わんばかりの内容。
おおむかしのMCU開発環境みたいで嫌いじゃないけど、arch 対応してないと敷居高いねこれ。
732デフォルトの名無しさん
2024/04/23(火) 09:44:34.04ID:SlAsUTut 公式チュートリアルすらまともに読めないお馬鹿さんは自分が使う道具を間違えててもそれを言語のせいにしたがる
プラスドライバーを使うべき状況でマイナスドライバーを使って使いにくいじゃねーかこんな道具は非合理的などと言い出す
ヤバすぎね?
プラスドライバーを使うべき状況でマイナスドライバーを使って使いにくいじゃねーかこんな道具は非合理的などと言い出す
ヤバすぎね?
733デフォルトの名無しさん
2024/04/23(火) 11:06:58.83ID:PMnHeW+x >>725
なんでコンパイル時にエラーにできないんだろう?
Rustのポリシーからすれば安全優先でargs_osだけにしてargsは削除すべきでは?
c++じゃあるまいに、コマンドラインのデータが常に正しいunicodeだと信用するプログラムを書けるとか、セキュリティーホールになりかねんと思うけど。
なんでコンパイル時にエラーにできないんだろう?
Rustのポリシーからすれば安全優先でargs_osだけにしてargsは削除すべきでは?
c++じゃあるまいに、コマンドラインのデータが常に正しいunicodeだと信用するプログラムを書けるとか、セキュリティーホールになりかねんと思うけど。
734デフォルトの名無しさん
2024/04/23(火) 12:06:18.33ID:cfnwg7MD panicは安全ですヨ
735デフォルトの名無しさん
2024/04/23(火) 12:11:09.83ID:r76fNggU >>734
緊急停止して「安全ですよ」はちょっと……
緊急停止して「安全ですよ」はちょっと……
736デフォルトの名無しさん
2024/04/23(火) 12:14:00.43ID:jXQ0V2HY737デフォルトの名無しさん
2024/04/23(火) 15:43:54.29ID:3Xc7JqWG738デフォルトの名無しさん
2024/04/23(火) 16:19:44.91ID:1rwyWp7B しいて言えばargs()を使う方が特殊ケースなのにデフォルトの名前を引き継いだのは設計ミス
もう治る見込みはないからargs_os()を使おうねってだけだけど
もう治る見込みはないからargs_os()を使おうねってだけだけど
739デフォルトの名無しさん
2024/04/23(火) 16:52:58.90ID:Kbb8det7 一応argsをdeprecatedにして徐々に移行させていくのはできるだろうけど
特に提案もなさそうだし誰も困ってないんじゃないかな
そもそもほとんどのケースでclapとか使うだろうし
特に提案もなさそうだし誰も困ってないんじゃないかな
そもそもほとんどのケースでclapとか使うだろうし
740デフォルトの名無しさん
2024/04/23(火) 17:20:16.94ID:jbFpiEtG741デフォルトの名無しさん
2024/04/23(火) 17:22:13.22ID:SM3r9/qB 環境変数もvarとvar_osがあるから慣れろとしか言えない
OS標準が全部utf-8になる未来もありえるし
OS標準が全部utf-8になる未来もありえるし
742デフォルトの名無しさん
2024/04/23(火) 17:48:20.12ID:x1LuxzDZ >>741
紛らわしいけどvar/var_osとvars/vars_osは別物だよ
varはinvalid UTF-8でもエラーハンドリング可
varsはpanic
argsは引数にUTF-8以外はダメだよって前提で使える余地がまだあるけど
varsはそんな前提をおける状況はほぼなくてよりたちが悪い
紛らわしいけどvar/var_osとvars/vars_osは別物だよ
varはinvalid UTF-8でもエラーハンドリング可
varsはpanic
argsは引数にUTF-8以外はダメだよって前提で使える余地がまだあるけど
varsはそんな前提をおける状況はほぼなくてよりたちが悪い
743デフォルトの名無しさん
2024/04/23(火) 18:06:35.01ID:DF4k8ks3744デフォルトの名無しさん
2024/04/23(火) 19:06:07.68ID:rRGY+2Qg >>732
公式チュートリアルまともに読めるならC++で良いからな
公式チュートリアルまともに読めるならC++で良いからな
745デフォルトの名無しさん
2024/04/23(火) 20:01:34.96ID:+uJAOtCC よーわからんけど10年ぐらい前はすべてutf16になると考えられてたのでは?
どう考えてもstd::env::argsを非推奨にしろとは思うけどね
欧米人がつくるとこんなことになるんだ
普通は2種類の扱いがある
・実行環境に合わせて自動的に内部での標準形式に変換
か
・何もしない
何もしないならOSから受け取ったままOSに渡して置けば大体問題はない
第三の愚策がRust
受け取ったままそのままOSに渡してもコケる
Rustは何もしないように見えるけど何かしてるからコケるのでは?
どう考えてもstd::env::argsを非推奨にしろとは思うけどね
欧米人がつくるとこんなことになるんだ
普通は2種類の扱いがある
・実行環境に合わせて自動的に内部での標準形式に変換
か
・何もしない
何もしないならOSから受け取ったままOSに渡して置けば大体問題はない
第三の愚策がRust
受け取ったままそのままOSに渡してもコケる
Rustは何もしないように見えるけど何かしてるからコケるのでは?
746デフォルトの名無しさん
2024/04/23(火) 20:52:29.82ID:xiHKhQOf747デフォルトの名無しさん
2024/04/23(火) 21:05:41.35ID:ykVY4Q8s Rustのパニックは綺麗なパニック
いいね?
いいね?
748デフォルトの名無しさん
2024/04/23(火) 21:12:51.81ID:xiHKhQOf >>747
一般的なパニックは色んな意味合いがあるけど
Rustでのパニックは関数ドキュメントに明記されている想定のことが起きた
ライブラリ関数の作成者はパニックを発生させる時の条件をドキュメントに明記しなければならない
だからそれを利用する各プログラマーにとっても想定内のことのみパニックが起きる
一般的なパニックは色んな意味合いがあるけど
Rustでのパニックは関数ドキュメントに明記されている想定のことが起きた
ライブラリ関数の作成者はパニックを発生させる時の条件をドキュメントに明記しなければならない
だからそれを利用する各プログラマーにとっても想定内のことのみパニックが起きる
749デフォルトの名無しさん
2024/04/23(火) 23:35:29.98ID:v0qt2UCV >>745
勘違いしてることが多すぎてもう笑うしかないwww
勘違いしてることが多すぎてもう笑うしかないwww
750デフォルトの名無しさん
2024/04/23(火) 23:41:39.78ID:x1LuxzDZ >>745
>よーわからんけど10年ぐらい前はすべてutf16になると考えられてたのでは?
30年以上前にUCS-2がWindowsやJavaに採用された時代のことを言ってるのかな?
(UTF-16と違ってUCS-2は固定幅なので今でもまだ使い所はあるけど)
↓これが15年くらい前のUTF-16に対する一般的な認識
https://softwareengineering.stackexchange.com/questions/102205/
>よーわからんけど10年ぐらい前はすべてutf16になると考えられてたのでは?
30年以上前にUCS-2がWindowsやJavaに採用された時代のことを言ってるのかな?
(UTF-16と違ってUCS-2は固定幅なので今でもまだ使い所はあるけど)
↓これが15年くらい前のUTF-16に対する一般的な認識
https://softwareengineering.stackexchange.com/questions/102205/
751デフォルトの名無しさん
2024/04/24(水) 00:43:41.33ID:5EZEwmZn utf-16はUnicode 2.0(1996年7月)のサロゲートペア導入でutf-8に逆転されたな
しばらくはBMPしか使われなかったから耐えてたけど
1990代前半に始動したJavaは運が悪かった
しばらくはBMPしか使われなかったから耐えてたけど
1990代前半に始動したJavaは運が悪かった
752デフォルトの名無しさん
2024/04/24(水) 01:21:01.63ID:YBOQY0J9 >>749
そう書きながら何もまともなレスすらできないレス乞食
そう書きながら何もまともなレスすらできないレス乞食
753デフォルトの名無しさん
2024/04/24(水) 01:23:24.26ID:YBOQY0J9 Rust界隈では狂信者がいてそいつらはまともに反論すら出来ないけど
Rustが正しいRustが正しいと繰り返すばかり
Rustが正しいRustが正しいと繰り返すばかり
754デフォルトの名無しさん
2024/04/24(水) 12:36:38.15ID:A+y4lqIx755デフォルトの名無しさん
2024/04/24(水) 12:47:56.41ID:HIQuAly7 すげーどうでもいい話だな
756デフォルトの名無しさん
2024/04/24(水) 12:47:57.96ID:A+y4lqIx757デフォルトの名無しさん
2024/04/24(水) 12:58:45.05ID:GRRi3Rgr758デフォルトの名無しさん
2024/04/24(水) 13:18:14.84ID:meF6WBmz Windows は Windows の機能として文字コードの管理はしてるが歴史的事情でツギハギのグダグダ。
今の Linux はおおよそ UTF-8 で統一されているけど規約で縛っているだけで、 OS としてはバイナリ単位で素通し。
保証としてはあてにならん。
今の Linux はおおよそ UTF-8 で統一されているけど規約で縛っているだけで、 OS としてはバイナリ単位で素通し。
保証としてはあてにならん。
759デフォルトの名無しさん
2024/04/24(水) 13:18:30.26ID:HIQuAly7 コンパイルエラーにできないから引数まで廃止するとか原理主義もここまで来てんのか。
760デフォルトの名無しさん
2024/04/24(水) 14:25:14.78ID:up+AoO7k >>754
無知にもほどがある!
unicodeとUTF-8が区別できない
Windowsに限らずLinuxでもmacOSでも非UTF-8の引数や環境変数が使われる可能性があるのは同じなんだがそんな常識を知らない
無知にもほどがある!
unicodeとUTF-8が区別できない
Windowsに限らずLinuxでもmacOSでも非UTF-8の引数や環境変数が使われる可能性があるのは同じなんだがそんな常識を知らない
761デフォルトの名無しさん
2024/04/24(水) 15:25:54.44ID:65hs2nTl762デフォルトの名無しさん
2024/04/24(水) 15:53:48.65ID:gLaneKFw 保証できるものはするに越したことはないけど (充分に実行コストが小さい形では) できんからしゃーない。
763デフォルトの名無しさん
2024/04/24(水) 16:02:42.64ID:zvblwt+/ どうでもいい話でもめてるな
Rustはすべて提供してドキュメントにそるぞれ明記しているのだから使う側の各自の問題
こちらはUTF8環境でしか使われないのでargs()のみ利用している
Rustはすべて提供してドキュメントにそるぞれ明記しているのだから使う側の各自の問題
こちらはUTF8環境でしか使われないのでargs()のみ利用している
764デフォルトの名無しさん
2024/04/24(水) 16:05:40.76ID:AQu1Dr63 https://github.com/rust-lang/rust/issues/91226#issuecomment-1034188905
関係する議論はこのあたりかな
もともとはargs/varsをパニックさせずに無視するか置換してほしいって要望だったが
無視や置換はセキュリティ上問題になる可能性があるので却下
varsは将来的にdeprecatedにするかもと言っている
なんでargsもdeprecatedにすべきだろって提案すれば通る可能性はあるかもね
関係する議論はこのあたりかな
もともとはargs/varsをパニックさせずに無視するか置換してほしいって要望だったが
無視や置換はセキュリティ上問題になる可能性があるので却下
varsは将来的にdeprecatedにするかもと言っている
なんでargsもdeprecatedにすべきだろって提案すれば通る可能性はあるかもね
765デフォルトの名無しさん
2024/04/24(水) 16:26:19.27ID:MMJHgfnp 正しく使え論は暴論だな
それが許されるならスマートポインタやGCは出ずみんな今でも生ポインタを使ってる
それが許されるならスマートポインタやGCは出ずみんな今でも生ポインタを使ってる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- ハゲがレジやってるコンビニって
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- さわやかって
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
