X



次世代言語25 TypeScript Swift Go Kotlin Rust Nim

■ このスレッドは過去ログ倉庫に格納されています
0228デフォルトの名無しさん
垢版 |
2022/04/25(月) 00:39:26.69ID:cR9N6Lw+
UFCSなんかなくても最初の引数の型に対してメソッド定義するだけで目的達成可能
グローバル名関数を増やして名前空間を汚さずともその型のメソッド定義がベター
0229デフォルトの名無しさん
垢版 |
2022/04/25(月) 00:47:38.84ID:pTvSoM83
>>225
GoやRustはclassなんか無くても各型に対してメソッドを定義できるのでそういうことを招かずに済むのよ
UFCSのメリットはメソッドチェーン記法が可能になることだから最初からメソッドを定義すればいいものね
0230デフォルトの名無しさん
垢版 |
2022/04/25(月) 00:55:00.32ID:sDr1xuuT
>>229
structかenumは定義する必要あるじゃん
tsのtypeがどういうものか分かったうえでレスしてる?
0231デフォルトの名無しさん
垢版 |
2022/04/25(月) 00:58:26.21ID:loxtuGTD
>>230
structやenumは単なるtypeだよ
C言語でもstructと(enumの代わりにタグ無しの)unionがあるよね(ただしメソッド定義はできないけど)
0232デフォルトの名無しさん
垢版 |
2022/04/25(月) 01:21:04.73ID:W8ZZnspt
Nim言語にもUFCSがあって関数だけじゃなくtemplateやmacroも関数と同じ文法で呼び出せるのでUFCSが使える。ただし第一引数がuntypedだとmethod call syntaxが使えない。
UFCSのメリットは標準ライブラリとか他人の書いたコードにある型とプロシージャの組に対してもmethod call syntaxが使えることだと思う。
第一引数が組み込み型のプロシージャを定義すれば組み込み型に対してmethod call syntaxが使える。
ライブラリAで定義されている型Xのオブジェクトに対してまったく別に書かれたライブラリBで定義されているgenericsなプロシージャをmethod call syntaxで呼ぶ出すことができる。
0234デフォルトの名無しさん
垢版 |
2022/04/25(月) 01:31:48.98ID:W8ZZnspt
>>228
オーバーロードがある言語なら引数が一つ以上あるグローバル関数を追加しても引数さえ異なれば同名の関数をグローバルに追加できる。
UFCSとオーバーロードがある言語では第一引数がFoo型の関数を定義するのはFoo型にメソッドを定義することとほぼ同じとみなせる。
0235デフォルトの名無しさん
垢版 |
2022/04/25(月) 01:35:52.92ID:V8fkjI23
つまりUFCSは汚染でありリスク要因
定義していないメソッドが使えることになってしまう
UFCSがなくとも明確にその型に対して定義されたメソッドのみ対象で実用上困ることはない
0236デフォルトの名無しさん
垢版 |
2022/04/25(月) 01:46:11.22ID:GF+5hMbb
モジュールがあるなら関数のimport有無でどの関数が呼び出されるか制御できたりしないの?
Rustのtraitのuseみたいに
0237デフォルトの名無しさん
垢版 |
2022/04/25(月) 01:55:33.57ID:W8ZZnspt
>>235
UFCSのあるNim言語をよく使っているけど特に問題無く使えてるよ。
ライブラリAで定義された型を第一引数に持つ関数をライブラリAの外で定義してもgenerics/template/macroなど使わない限りライブラリAから呼び出せないし、ライブラリA内で使われている関数を外から勝手に上書きできない。
メソッド呼び出ししているように見えてもライブラリA内のプライベートな変数/関数はライブラリの外からアクセスできない。
method call syntaxってa.fooMethod(b)って書いてあるのを
コンパイラがfooMethod(a, b)という関数呼び出しとして解釈しているだけでなんのリスクもないよ。
第一引数にFoo型のオブジェクトをとる関数を定義してもオーバーロードがあるのでFoo型を使わない人には何の影響も与えない
0239デフォルトの名無しさん
垢版 |
2022/04/25(月) 02:06:16.28ID:W8ZZnspt
>>236
Nim言語だとimportするときにfrom std/strutils import `%`みたいに特定の型/関数だけをインポートすることができるよ。
もし同じ名前で同じ引数の関数が複数定義されている場合は関数名の前に"モジュルー名."をつけないとコンパイルエラーになる。
0240デフォルトの名無しさん
垢版 |
2022/04/25(月) 02:34:25.81ID:z8DQnMuR
結局UFCSは不要だよな
メソッド的に使いたいならば最初からその型にメソッドを生やせばよいだけ
必要ならばジェネリックに定義すれば複数の型に同時にメソッドを生やせる
わざわざグローバル関数にしておいてからメソッド的に使えます!とかメリットを一切感じない
0241デフォルトの名無しさん
垢版 |
2022/04/25(月) 02:47:04.24ID:W8ZZnspt
>>240
標準ライブラリにある型とか他人のgithubリポジトリにあるライブラリにも自由にメソッド追加できるの?
ジェネリックにする必要が無いときでもジェネリックにしないとメソッドはやせないの?

Nim言語にはそもそもC++のメンバ関数みたいなのが無くて、第一引数がFoo型の関数がFoo型のメソッドの代わりみたいになっている。
0242デフォルトの名無しさん
垢版 |
2022/04/25(月) 03:05:01.71ID:hhhqUz2p
>>241
ジェネリックである必要なし
もちろん同じ機能を複数の型に適用ならジェネリックで1回で済むのが普通
0243デフォルトの名無しさん
垢版 |
2022/04/25(月) 03:21:57.26ID:FFLrto9L
>>241
うん
標準ライブラリや第三者ライブラリにある型にもメソッドを増やすことができるよ
だからUFCSが無くても困らないよ
0244デフォルトの名無しさん
垢版 |
2022/04/25(月) 04:39:58.47ID:W8ZZnspt
UFCSがあれば引数が一個以上持つ関数であればa.f(b)ともf(a, b)とも書ける。
a.f(b)とf(a, b)の両方で書きたい場合があったらどうするの?
UFCSがなければa.f(b)で呼べるメソッドがあるときジェネリックな関数の中でf(a, b)の形式で呼ばれていたら、わざわざ新しくa.f(b)を中で呼ぶf(a, b)を定義しないといけない。
逆にf(a, b)な関数があったときに新しくメソッドを定義しなくてもa.f(b)と書ける。
それとNimだとcommand invocation syntaxがってf a, bという文法でも関数を呼べる。括弧がないので引数が複雑な式にならなければ書きやすくて読みやすいよ。
0245デフォルトの名無しさん
垢版 |
2022/04/25(月) 05:29:11.29ID:d+UJIvmE
>>244
Rustでも可能
例えばu64型のxに対して
xのn乗はu64::pow(x, n)という関数が標準であるけど
これはx.pow(n)と呼び出すことができる
0248デフォルトの名無しさん
垢版 |
2022/04/25(月) 11:59:33.54ID:QEeStXPn
>>241
既存の型にもメソッド追加できるよ
例えばJavaScriptならこんな感じ

// 文字列にhello()を追加
String.prototype.hello = function() {
console.log(`Hello ${this}!`);
};

// 数値にhello()を追加
Number.prototype.hello = function() {
console.log(`Hello ${this}!`);
};

"abc".hello();
// 123.hello(); // 文法エラー
let num = 123;
num.hello();
0249デフォルトの名無しさん
垢版 |
2022/04/25(月) 12:16:38.60ID:VSqj5wTk
Rustではジェネリックにメソッド追加することも可能

// メソッドhello()を持つトレイトHelloを宣言
trait Hello {
fn hello(&self);
}

use std::fmt::Display;
// 表示可能トレイトDisplayを満たす全ての型に対してhello()を実装
impl<T: Display> Hello for T {
fn hello(&self) {
println!("Hello {self}!");
}
}

fn main() {
"abc".hello();
123.hello();
}
0250デフォルトの名無しさん
垢版 |
2022/04/25(月) 12:41:05.03ID:GF+5hMbb
既存の型へのメソッド追加はプロトタイプ汚染とか言われて忌避されてるよね
他モジュールへの影響の出ない形でメソッド追加する手法が望ましい
0251デフォルトの名無しさん
垢版 |
2022/04/25(月) 12:53:37.30ID:BAh3CRfm
>>250
JavaScriptはプロトタイプがグローバルに書き換わり全てのモジュールに適用されるためだな
一方でRustはメソッドを追加するにはトレイトを用意することが必要、そしてトレイトが宣言/useされている空間のみ有効、なので汚染が生じず安全
0252デフォルトの名無しさん
垢版 |
2022/04/25(月) 13:16:10.20ID:GF+5hMbb
>>251
型を定義した以外のcrateでメソッドを追加するためにはtraitが必要、が正しいかな
メソッドを追加するためにはtraitなしのimplを書く方法もあるが、これをできるのは型を定義したcrateだけに制限されているので他crateで定義を追加して汚染することはない

とまあRustの事情は知ってるんだけど、他の言語ではどうなってるのかが知りたかった
0254デフォルトの名無しさん
垢版 |
2022/04/25(月) 13:22:02.11ID:UiNQmXr4
JavaScriptで脆弱性を生みまくってさんざん問題視されたんだから、いまどきそんな汚染が起こる新しい言語は一つもないよ
0257デフォルトの名無しさん
垢版 |
2022/04/25(月) 13:58:52.24ID:TLzTt+1G
>>256
UFCSはメリット無いからでしょ
メソッド追加できるなら関数よりメソッドの方が名前空間を汚さないし
0260デフォルトの名無しさん
垢版 |
2022/04/25(月) 15:13:03.71ID:B7syBDSL
結局メソッド生やしたいんじゃなくてプライベートメンバにアクセスしたいだけなんだよな
0261デフォルトの名無しさん
垢版 |
2022/04/25(月) 15:22:37.45ID:sJr09n4H
>>259
汚染言うならRustのtrailと同レベルじゃない?

関数をincludeしなければ影響無いんだし、言語次第だけど名前空間に閉じ込めることもできるだろ。
0263デフォルトの名無しさん
垢版 |
2022/04/25(月) 15:36:09.96ID:3MmiqOlF
いやトレイトで似たようなメソッドがたくさんぶら下がって汚染されてますよね?それが更にハードルが上がる一因になってる
0264デフォルトの名無しさん
垢版 |
2022/04/25(月) 15:46:00.36ID:ZqKc7K5J
>>263
Rustでは明示的にuse Traitしない限り
そのトレイトのメソッドが有効になることはないよ
汚染は起きず安全に設計されている
0265デフォルトの名無しさん
垢版 |
2022/04/25(月) 15:55:06.48ID:UiNQmXr4
>>264
当然、D言語でもnimでも、importしたシンボルは、importされたスコープでしか有効にならないし、メソッド形式の呼び出しもできない
Rustと何が違うんだよ
0266デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:00:14.18ID:xSu4vg9o
UFCSは強制汚染
関数として必要なだけなのにメソッド名空間を汚染
メソッドとして必要なだけなのに関数名空間を汚染
だから採用する言語がほとんどない
0267デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:01:50.20ID:3MmiqOlF
>>264
イヤイヤ、そんなのほとんどの言語でimportやincludeと同じで更に言えば、use std::io::prelude::*;みたいにRustでもPythonでも
誤ったやり方とされてるワイルドカードだって使えるんだから一緒でしょ。明確に言うなら”汚染は起きず”ではなく、汚染は当然ながら
useするのだから起きている。無意味にuseしない*を使わないというのは言語仕様や特性じゃなく規約だよ
0269デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:09:49.70ID:Ld005CpI
>>267
Rustでは追加メソッドを使う場合
必要な機能のTraitだけを
use TraitName as _; する
そのため汚染は起きない
0270デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:18:54.63ID:EM9X2zpO
>>264
ほんとRustニワカ嫌いだわ、「明示的にuse Traitしない限り」なんて良くそんな詭弁が言えるわ。どう考えても一緒でしょう
だからPythonだってas構文使えますし、D言語だってimport std.stdio : writeln, writefln;で選択的インポートできるでしょw
0272デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:23:34.31ID:NxLuUrhR
>>269
Underscore importなんてRustがトレイトのシンボルが別のシンボルと競合する可能性がある場合、つまりRustが破綻しないように
特別にあるだけで、汚染の低下のための機能ではないぜ。ここで汚染といってるのは無暗にメソッドが追加される事。
(回避策が仮に無ければ)衝突することはもはや、言語的な欠陥だ
0273デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:27:35.43ID:KFrD7nO2
使われる空間に名前が載ることを汚染とは言わない
使わない空間に名前が載ることを汚染と言う

UFCSが汚染と言われる理由は
関数として使いメソッドとして使わなくてもメソッド名空間に載り
メソッドとして使い関数として使わなくても関数名空間に載るためだと考えられる
0274デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:34:56.30ID:NxLuUrhR
>>273
Rustだって、fn中にuse出来るわけでそれはほかの言語でも同じ。そう言う事はあまりしないけども、多くの言語で同じように”使われる空間”だけに載る
0275デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:36:52.48ID:UB00PZWU
RustがUFCSを採用しないのは単に、パーサーをオブジェクトを先して作り直すと(C言語にわざと似せてる)見た目が変わってしまうし
パーサーに手を入れるということは苦労してきたコンパイル速度が低下してしまう恐れがあるという事だけ
0276デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:37:55.90ID:ZcyGlXND
>>273
その程度で汚染とか言うの聞いたことねえよ
ESModuleとかが導入される前のJSのグローバル汚染なんかと比較してみ?
Rust上げしたいがためだけのただのイチャモンだよお前の主張は
0280デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:46:59.96ID:EmEbSMmo
Rustの宣伝はこんな匿名掲示板じゃなくQiitaとかに書いてほしいな
その反応で実際に正論なのか暴論なのか明らかになるだろう
0281デフォルトの名無しさん
垢版 |
2022/04/25(月) 16:49:37.58ID:ZJMHR0C4
UFCSという汚染機能をサポートしているプログラミング言語はDとNim
埋もれた言語となったのも当然の結果
0283デフォルトの名無しさん
垢版 |
2022/04/25(月) 17:00:21.10ID:AtUdeTix
ほとんど全ての言語がUFCSを採用していない理由はメリットが無いからだと思う
そして無条件に二つの名前空間に登録されてしまうことを汚染と呼ぶかどうかは置いておくとしても本末転倒の方法かなとは感じる
0284デフォルトの名無しさん
垢版 |
2022/04/25(月) 17:01:11.49ID:XBfmr4Gp
>>275
さらにRustは実装としてUFCSを別の意味で誤って使っていた過去がある、::パス構文で混乱を引き起こして曖昧性が起きた。2017年頃でそんなに優れた開発者がおらずなんとなく実装していた時期だな、いつもはRustは論文がしっかりしてると嘯くのに
0287デフォルトの名無しさん
垢版 |
2022/04/25(月) 17:19:42.27ID:o63SmoRM
>>286
Rustは関係ないんじゃね?
むしろRustのアンチ側がなぜかRust叩きしていて巻き込まれ被害側にみえる
0288デフォルトの名無しさん
垢版 |
2022/04/25(月) 17:26:05.13ID:PqJDEf6z
どっちでもいいよ
信者だろうがアンチだろうがあらゆる話題がRustとの比較になって宗教戦争化するのが馬鹿馬鹿しすぎる

Rustの話題はスレ違いなのでRust叩きもスレ違いとする、問題解決
0289デフォルトの名無しさん
垢版 |
2022/04/25(月) 17:26:35.89ID:4xqZqLmv
ほぼ全ての言語がUFCSを採用していない
しかしUFCSが叩かれるとなぜか必死にRustを攻撃してくれる
一石二鳥と言えるだろう
0290デフォルトの名無しさん
垢版 |
2022/04/25(月) 17:38:49.59ID:63+wFQ6i
C++委員会での議論でもメンバ関数と非メンバ関数で衝突したときにどう解決するかで割れて否決されたみたいだし、なかなか難しそうだね
0291デフォルトの名無しさん
垢版 |
2022/04/25(月) 17:51:06.52ID:BSwMXBpD
考えてみたがUFCSは完全に不要っぽい
まずメソッドとして使いたいものは最初からメソッドとして書けばよい
次に外部の関数をどうしてもメソッドとして使いたいならばその外部関数を呼び出すメソッドを追加すればよい
0292デフォルトの名無しさん
垢版 |
2022/04/25(月) 17:53:13.68ID:VVkmIp+6
衝突が問題ならUFCSの使用は記号などを使って明示したらいいんじゃないかな?
0293デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:02:36.22ID:DhJCopPa
「Rustを攻撃」ってどっちも同じでしょって言ってるだけなのに、このように攻撃を受けたと勘違いするんだから、正常な議論なんて出来ない。
UFCSについて難癖付けてるだけじゃん、個人的には別に必要ないと思うし、仮にあったら便利だとも思うが。コンパイル時間が増えるのは許容できない
「Rustのアンチ側」なんて言い出すクズどもとまともな話なんて出来るわけない。
こんな奴らばっかり増やしてもRustの普及を妨げてると思うんだけど?
0294デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:07:17.52ID:3bYGoG0a
スレ読んだけど
汚染でも何でもなくRust特有の問題でもないことをRustは汚染だと延々と叩いてるのは異常に感じた
0295デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:08:46.62ID:sJroCDvH
今のところUFCSがある言語と外部のデータ型に対してメソッドを追加できない言語、メソッドを追加できる言語とできない言語のそれぞれは前者が勝手で勝るけど、前者同士では好みとか実現手法の違い程度の話のように感じてる
UFCSも結局モジュール単位で環境が分離されている事が殆どのようだし、どちらかじゃないとできない事も、どちらかだと発生する致命的な不都合も見えてこない
一見機能が不要に見えても、その採用理由が他の要素に起因してたりもするだろうし、その辺私はUFCS採用言語のことを詳しく知らないのでなんとも言えないな
0296デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:09:37.23ID:9QpKK4x8
>>292
C++での議論では当然そういう案含めていろいろ提案されたけど、結局どれも一長一短で委員会での合意には至らなかったみたい
一人で作ってる言語なら作者の好みでサクッと入れられちゃうんだろうけどね
0297デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:11:19.66ID:DhJCopPa
汚染と言わなくても、Rustがuseで似たようなメソッドがたくさん出てくるのは本当でしょ、UFCSにしてもそれはイコールで何ら変わらんわ
なんでこいつらマトモに話すら出来ないの?コーディング能力を持ってるんだろうけど、コミュニケーション能力はゼロに近い
0298デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:11:26.99ID:VVkmIp+6
メソッドが動詞ならUFCSでは関係が逆になるんだよね
英語圏の人はどう思ってるんだろ
0299デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:15:08.57ID:Xt13Fv0a
>>298
OSV言語の自然言語に近くなるから、オブジェクトが先に来るのは利点として受け止められてる。でも所詮はシンタックスシュガーの何者でもない
0300デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:16:12.91ID:TDNc/5Gc
>>297
> 似たようなメソッドがたくさん出てくる

そこ意味がわからない
似たようなメソッドがたくさんとは何?
0301デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:19:11.55ID:VVkmIp+6
C#にも拡張メソッドと言う名前でほぼ同じ機能が使えるけどそっちは拡張メソッドオンリーで使う前提で作られてる
0303デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:31:31.86ID:5qzMTDWR
>>299
英語はOSVじゃなくSVOな?OSVになることもあるけど、そして世界の自然言語の主流は日本語と同じくSOVが40%
参考としてスター・ウォーズのジェダイ・マスター:ヨーダは、このOSV語順で話す。
0304デフォルトの名無しさん
垢版 |
2022/04/25(月) 18:34:58.90ID:VVkmIp+6
var s=copy(section);
paste(s);
みたいなのがあって

これを
paste(copy(section)):
とするより
section.copy().paste();
のほうが受け入れ易いってことだよね?
0307デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:07:02.73ID:tSjXYtJn
>>305
ところがどっこい var sのsはメソッドを生やせないstring型だ

常にメソッドを生やせるとは限らないし、元のクラスに必要以上の仕事を増やさないためにから拡張メソッドという概念があるんだよ
0308デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:15:14.85ID:VVkmIp+6
スコープでuse出来て局所ごとにsection.print()の意味が変わる場合も便利だと感じる?
0309デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:28:32.34ID:WnCW0ZaS
メソッドじゃなくて関数や変数でも、スコープごとに意味が変わりうるのは当然のこと
0310デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:29:22.19ID:9QpKK4x8
拡張メソッドが欲しいのはまぁ分かるんだけど
UFCSまでいくと普通の関数のつもりが意図せずメソッド呼び出しできてしまう、みたいなデメリットの方が大きくなる気がするなぁ
0311デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:33:06.80ID:m1bq2XCo
なぜRustが叩かれていたのかようやく理解できた
Rustでは基本の型にも外部の型にもメソッドを追加できるわけか
そのためメソッドを自由に追加できない言語の人が逆恨みで叩いていたと
0314デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:43:06.53ID:DNOUKEV3
>>312
え?logging.rsに"test".print();と書いてあるのと、printer.rsに"test".print();で意味が変わるのはなんも関係無くねえ?
つーか普通に関数でprint("test")だのsaveだの、getだの散々やってるじゃん。気持ち(悪い)の問題なんだろうけどさ
0315デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:46:57.59ID:3TQSNLUR
>>311
それはNimも同様。
むしろNimの方がメソッドと関数を統一しているから(記法が違うだけ)、より自然に拡張できる。

>ぜRustが叩かれていたのかようやく理解できた
>逆恨みで叩いていたと

こういうアホなことを言う狂信者ばかりだからだよ。
0316デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:56:02.27ID:W8ZZnspt
RustのメソッドとかC++のメンバ関数のような特定の型だったりトレイトに束縛された関数のようなものがNimにはなくて、自由関数だけがある。
だからNimからUFCSをとったらC言語のように全ての関数をfoo(x, y, z)って書かないといけなくなっちゃう。
UFCSがあるおかげでどんな関数もx.f(y,z)だったりf(x, y, z)とか自由に書ける。
UFCSで関数がメソッドになるとプライベート変数/メソッドにアクセスできちゃうって勘違いしている人がいるかもしれないけどNimではそれは起きない。
C++のメンバ変数に相当するものや関数のアクセス権はモジュール外にそれを公開するかしないかのどちらかしかない。
0318デフォルトの名無しさん
垢版 |
2022/04/25(月) 19:59:13.38ID:9XvEg3RG
>>314
逆にprint_to_printer()とか print_to_consoleとか書いてあったら発狂するかもしれんわ
一番使うdebug_assert_eqとかヤメテほしい・・・、あと帰ってくる正式な型名が異様に長くなるのもC++の悪いところを引き継い出るような感じがする
0319デフォルトの名無しさん
垢版 |
2022/04/25(月) 20:05:33.97ID:4uqCvk4R
>>316
自由関数しかないNimは関数名空間が常に汚染されてしまうのね
普通のプログラミング言語ならばメソッド名として名前空間が分離されるのよ
0321デフォルトの名無しさん
垢版 |
2022/04/25(月) 20:09:08.19ID:9XvEg3RG
>>319
1つも調べもせんのな、自由関数だけじゃなくmethodもある。つーかおまえRust使うの止めてJavaやってろ、まじ迷惑
0323デフォルトの名無しさん
垢版 |
2022/04/25(月) 20:10:31.91ID:3TQSNLUR
>>317
>>316にまとまっているよ。
メソッドが無くて、ただの記法の違いでしか無いからこそUFCSのメリットを最大限享受できる。

>>319
メソッド名を関数名から「常に」分離するメリットは?
関数自体をモジュールとかで分離して管理できればいいんじゃないのかね。
0324デフォルトの名無しさん
垢版 |
2022/04/25(月) 20:13:13.14ID:xcxOK/uY
やはり逆恨みで無関係なRust叩きやってる説が正しいかもしれん
Rustが無関係な状況でも>>321のように唐突にRustを出してくる
0325デフォルトの名無しさん
垢版 |
2022/04/25(月) 20:21:15.47ID:51f23UG1
逆恨みだの、攻撃だの、ずーーとこんな事言ってる奴いるけど完全なびょーきだと思う。名前空間が汚染されないという言語はお前の中で具体的に何?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況