[過去ログ] Rust part24 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
496
(2): デフォルトの名無しさん [sage] 2024/06/30(日) 10:30:41.18 ID:8eFU1ITU(1) AAS
>>493
493(2): デフォルトの名無しさん [] 2024/06/30(日) 05:54:25.07 ID:WATrci3L(1/4) AAS
>>309
横からすみません。
C#を関数型っぽく書いたら、ここまではなったのでRustだったらどうなるのか聞いても良いでしょうか?

public static void Main(string[] args) { args.ToList().ForEach(f); }

static void f(string fileName)
{
Console.WriteLine(fileName);
File.ReadAllLines(fileName).Select(g).ToList().ForEach(Console.WriteLine);
}

static Func<string,int,string> g = (line,i) => $"{i + 1,2}:{line}";
何回ToListすんねんw
ReadAllLines含めて3回とも必要ないやろ
499
(1): デフォルトの名無しさん [] 2024/06/30(日) 11:17:03.52 ID:msuugTQH(1) AAS
>>496
.net標準にはList型にしかForEachが導入されてないからやな。
C#ではチェインメソッドにしないほうがいいとされてる。
外部リンク:learn.microsoft.com
506
(1): デフォルトの名無しさん [] 2024/06/30(日) 16:34:51.56 ID:WATrci3L(2/4) AAS
>>497
497(3): デフォルトの名無しさん [sage] 2024/06/30(日) 10:53:06.05 ID:DQMdIUg4(1) AAS
あえて >>493 で頑張ると
外部リンク:paiza.io

fn main() {
let cwln = |s| { println!("{}", s) };
let g = |(i, line): (usize, &str)| { format!("{:>2}:{}", i + 1, line) };
let f = |file_name: String| {
cwln(file_name.clone());
std::fs::read_to_string(file_name).map(|u8b| {
u8b.lines().enumerate().map(g).for_each(cwln)
}).unwrap()
};

std::env::args().skip(1).for_each(f)
}
ありがとうございます。
u8b受け取ってるラムダ式を関数化したらスッキリしそうですね。

>>496
Selectもindexを受け取れるんですが値を返さないとダメで、
あえてvoidなメソッドの後にreturn 0を、入れてエラーが出なくなったと思ったら、
遅延評価なのかfor/foreach/ForEachじゃないと中身を実行してくれないんですよ…orz
(結論、Selectはデータ加工専用で入出力には使えない)
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s