[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/23 14:13 / Filesize : 233 KB / Number-of Response : 1025
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミング言語 Rust 2



1 名前:デフォルトの名無しさん mailto:sageteoff [2016/11/02(水) 03:12:40.30 ID:MYQ7Ohex.net]
Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。

www.rust-lang.org/
https://github.com/rust-lang/rust

Servo
https://servo.org/
https://github.com/servo/servo

◆前スレ
プログラミング言語 Rust
echo.2ch.net/test/read.cgi/tech/1327489549/

528 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 10:36:58.61 ID:IXi6HShy.net]
コストかけるとこほんとそこじゃねえんだよ。
こりゃ某S系質問サイトで人気トップなのもステマだろうな
ステマで人気を膨らましてその実実用にもならないクソ言語
クソモジラがケツモチしてるんだからステマで人気水増ししてるのも当然の帰結と言えるか

529 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:08:05.53 ID:H4R0mXRf.net]
人気水増ししたら何かいいことあるの?
ステマするほどの価値があるようにも思えないが。

530 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:16:02.83 ID:LSEhsWdS.net]
>>519
自分もこんなゴミステマしても虚しいだけだと思うんだが、
どうやらモジラにとってはこの言語が流行ってくれないと困るらしい
だから「これからはRustの時代!」みたいな工作をStack某とか上のベンチマークとかでやってんだろう。

最近ロゴ変えたことといい、どうもクソモジラはOSS界の電通目指してるくさいな。

531 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:25:43.94 ID:U3ebhjnw.net]
Rustが流行る
=> Rustで実装されたServoの完成度が上がり流行る
=> ServoがWebkitの代わりに使われる
=> Servo組み込みサポート費用がMozillaに払われる

随分と迂遠なMozillaの経営改善計画だったんだよ!と頑張ってみる
ステマされて困る人はパイを奪われるWebkit関係者かな?

532 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:30:47.35 ID:zngwxGAX.net]
競争相手はWebKitでもEdgeHTMLでもなくBlinkやろとマジレス

533 名前:デフォルトの名無しさん [2017/02/23(木) 13:44:41.82 ID:LSEhsWdS.net]
>>521
それ本気で言ってるとしたら中の人乙としか言いようがないな。

534 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 14:32:01.45 ID:eozO90Y3.net]
クソ連呼厨ってID変えられるのかよ

535 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 14:51:38.09 ID:zngwxGAX.net]
nixを始めとする一部のRust関係プロジェクトのプルリクエストを管理している@Homuとかいうbot、あれって誰の趣味であんな風になったんだ……?

536 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 14:51:48.47 ID:LSEhsWdS.net]
>>524
別に理由もなくクソ連呼してるわけでもないんだがな。
CやC++で簡単に書けることもコンパイラに弾かれて書けないわ
そもそもシンタックスが未完成だわ
ライブラリも貧弱で、かつCライブラリ使うためのラッパも
unsafe層とRust層の二層無駄に必要だわ
これを実用言語としてごり押しするクソモジラの良識のなさが一周回って笑える
もともとモジラに良識なんてないけどさ。



537 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 14:56:46.73 ID:yq/Deji1.net]
危険な操作をコンパイル時点で弾いてくれるのがRustの売りなのにそこで文句を言ってるのは根本的にミスマッチしているとしか

538 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 15:07:19.45 ID:LSEhsWdS.net]
>>527
危険な操作とか言い出す判定がクソすぎて明らかに安全なパターンもはじいて来るだろ。
おかげでボイラープレートなコードが増えること増えること。
そこをなんとかごまかすための文法拡張の導入は機能に関係ないとかで後回し
ついでに型もうるさい上にドキュメント見ても返り値の型がわからんで型合わせが総当たり

確かに物が何一つ作れないという意味では安全だわな。危険なものも含めて一切できないから。

539 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 15:11:18.18 ID:U3ebhjnw.net]
そろそろD言語推しが参戦しそう
swiftスレの荒しが波に乗らなくて遊びにきたんだろうから、少し待てばまたあっちに戻ると思うよ

540 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 19:22:05.86 ID:cQa0oJ+5.net]
>>528
どうせクソコードなんだろう
無能のクセに文句だけは一流

541 名前:デフォルトの名無しさん [2017/02/23(木) 19:36:29.28 ID:9wlFqT9C.net]
>>519
>人気水増ししたら何かいいことあるの?
Rustライブラリの開発者が増える→ライブラリが充実する

542 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:03:57.20 ID:cNXolJMY.net]
Rust勉強したら何が作れんの?
C#とJSで何でも作れるご時世で

543 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:11:53.29 ID:eZ3ictl+.net]
「言語Aで何でも作れること」と、「言語Bで作れるもの」に
どういう関係があるのか

544 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:15:09.50 ID:zngwxGAX.net]
実際にお前らが何を作ってるのかは気になるな
crate公開したりしてんの?

545 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:25:56.16 ID:LSEhsWdS.net]
>>530
そういう、Rustコンパイラ通らなきゃクソコードって思い込みが一番腹立つんだよ

546 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:42:34.44 ID:oSrrQwof.net]
>>535
でもそうなんでしょ?



547 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:00:48.13 ID:LSEhsWdS.net]
>>536
Cでバグなく動いてたコードが移植できない時点でな。

548 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:06:08.32 ID:SG08isVj.net]
動いてるだけで、そのコードバグ有るんやで。
お前には分からんのだろうが

549 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:06:35.79 ID:FuQeN9Oq.net]
へえバグないんだ良かったじゃんわざわざRust使わなくても済むね

>>534
人に尋ねるときはまず自分から晒すのが礼儀やで

550 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:11:35.09 ID:LSEhsWdS.net]
そうだよ。だからずーっとRustは使う必要ない、つーかそもそも言語として欠陥品、クソモジラのステマで流行ってるように見えてるだけだ
っつってんのに、誰一人まともに聞きやしねえ。
まあこんなスレで称賛してるあたりステマ部隊なんだろうが。

551 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:15:20.74 ID:vAxbMLg6.net]
ID:LSEhsWdS
今日の患者さんはなかなか元気だな。

552 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:15:27.70 ID:eZ3ictl+.net]
どうせRustがスタンダードになることは無いんだから
嫌なら使わないで済ませられないの?
周りに熱心な布教野郎がいて迷惑してるのか

553 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:17:02.17 ID:kHt4tzR1.net]
Rustの美しさを一つあげたい
それはクロージャの記述

// rust
let f = |x| x + 1; // 美しい
f(123); // 美しい
g(|x| x + 1); // 美しい

# ruby
f = lambda {|x| x + 1} # 汚い
f = ->(x) {x + 1} # おぞましい
f.call(123) # 汚い
f.(456) # 見苦しいドット
f[789] # 悲しい
g {|x| x + 1} # 見苦しい中括弧

// javascript
var f = x => x + 1; // 見苦しい矢印
f(123); // 美しい

// c++
auto f = [](int x) -> int {return x + 1;}; // もはや悲惨
f(123); // 美しい

554 名前:デフォルトの名無しさん [2017/02/23(木) 21:19:45.77 ID:sZtROie8.net]
C++の -> int は省略できるやろ

555 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:30:27.03 ID:LSEhsWdS.net]
>>542
周りっつーか上司が誰に吹き込まれたのか既存のC資産をRustに書き換えろとかふざけた話を下ろしてきた。
チーム全員現在進行形でぶちギレてて今度上司の上司と話つける予定よ。

556 名前:デフォルトの名無しさん [2017/02/23(木) 21:35:29.77 ID:sZtROie8.net]
>>545
なにそれ、Rust使ったことなくてスレ見てるだけだから別の言語覚えながらリファクタリングとかむしろ羨ましいんだけど。



557 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:36:35.33 ID:eZ3ictl+.net]
>>545
あぁ、マジで実害あるのか…
でも上司だってこのスレ見て決めたわけじゃない、ここで憂さ晴らししてもしょうがないだろ
まあ大変だろうが頑張ってくれ

558 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:37:38.93 ID:LSEhsWdS.net]
>>546
なんだ使ったことないのに称賛してたのか。
関数一つ移植するのに半日とかザラで発狂しそうになるぞ。
悪いことは言わんから本当にやめとけ。

559 名前:デフォルトの名無しさん [2017/02/23(木) 21:38:33.89 ID:sZtROie8.net]
>>548
え?称賛なんかしてないけど?

560 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:41:45.75 ID:LSEhsWdS.net]
>>549
うらやましいとか言われたからRust好きでたまらんのかと思ったわ。

561 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:48:04.84 ID:DPtsYYmf.net]
LSEhsWdSはプログラミングセンス無いからこの業界辞めた方がいい

562 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:49:23.09 ID:TLItgOP3.net]
元コードにバグがないと仮定して、CコードがRustに移植できない例考えてみたが、
グローバル変数にバッファプール置いてるとかだと確かにストレートな移植はできなさそうだな。

563 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:54:24.67 ID:LSEhsWdS.net]
>>551
Rust基準でプログラミングセンス語るクソモジラ信者乙。

564 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:58:31.77 ID:zngwxGAX.net]
合わない現場で無理やり使わされてるってことなら災難だね
分かったからここで鬱憤を晴らすのはやめてくれ

565 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:04:06.85 ID:TLItgOP3.net]
LSEhsWdSがブチギレてることは伝わったが、その怒りは言語じゃなくて上司に向けるべきなんじゃねーかな。

566 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:05:57.88 ID:NuCuZGCr.net]
マ板でやれ



567 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:08:46.56 ID:SG08isVj.net]
>>555
ID:LSEhsWdS にそれが出来たら、こんなところで暴れてないんだよなあ。

568 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:09:53.57 ID:cNXolJMY.net]
Rustのどのへんがぶちギレポイントなのか詳しく
それなら少しは有意義やろ?

569 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:14:46.67 ID:X5Zb9v7q.net]
>>525
homuの作者

570 名前:543 mailto:sage [2017/02/23(木) 22:17:35.80 ID:kHt4tzR1.net]
もいっちょRustのいいところ
foldの自然さ

// rust
let a = [1, 2, 3].iter().fold(100, |acc, x| acc + x); // 美しい

# ruby
a = [1, 2, 3].inject(100, :+) # 文句は無い
b = [1, 2, 3].inject(200) {|acc, x| acc + x} # 初期値とブロックを離して書くのが寂しい

(* OCaml *)
let a = List.fold_left (+) 100 [1; 2; 3];; (* 文句は無い *)
let b = List.fold_left (fun acc x -> acc + x) 200 [1; 2; 3];; (* funと->がやっぱり気になる *)

571 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:32:19.67 ID:K3Cm2dt ]
[ここ壊れてます]

572 名前:r.net mailto: >>552
ノード間のリンク構造が頻出してると、移植できなくはないが、Rust初心者はコンパイルできなくて詰む
あと、変数を強引にキャストしまくってるようなやつは、移植初心者にはつらそう
[]
[ここ壊れてます]

573 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:43:51.07 ID:8gwVa+zN.net]
syntax気にするだけならsmalltalkやるよろしアル

574 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:49:52.60 ID:rTUbWHRo.net]
>>558
borrow checkerにマジでキレる5秒前
なんかrustコーディングしてるとあいつとアームレスリングしてる気分だよ

575 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:12:24.86 ID:ItvUsJzd.net]
グラフ構造とか他のメンバ変数への参照をメンバ変数に持ってる構造体とか
あと、borrow checkerに怒られる場合にその箇所の修正だけで済むのか根本的に間違ってるのか分からないことが多くて困ることが多い

576 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:26:16.38 ID:TLItgOP3.net]
確かに構造体の中に何らかのデータの借用持ってるとだいたい頭がおかしくなって死ぬな。



577 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:27:05.57 ID:9wlFqT9C.net]
>>560
JavaScript
var a = [1,2,3].reduce((acc,x)=>acc+x, 100);

578 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:28:39.85 ID:zngwxGAX.net]
Rustの良さは徹夜明けに書いたコードでもSEGVらない安心感()

579 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:33:26.07 ID:JrwuNkgj.net]
移植だけなら全部unsafeにすればわりと機械的に出来るような気も。
そのあとリファクタリングでunsafe取っていくかそのまま放置かは状況次第だけど。

580 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:35:46.51 ID:9wlFqT9C.net]
nullチェック機構がどれだけ強固になろうともそれを回避する手段が容易であれば糞プログラマを排除しないかぎり糞コードは量産される

581 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:42:42.37 ID:UGVUxePL.net]
JavaScriptなんて使うくらいならいっそCとEmscriptenで書きたいわ

582 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:45:15.15 ID:TLItgOP3.net]
>>570
ところでRustとEmscriptenでWebasm吐くって出来るんですよね。

583 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:58:21.84 ID:DPtsYYmf.net]
その言語にはその言語の書き方考え方というのがある
高級言語使いが低級言語を使えない言語扱いしてるのと同レベルの幼稚な文句
ただひとつ言えるのはこいつは無能でセンスもゼロ

584 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 01:32:47.64 ID:/cLlv/nZ.net]
>>543
> // rust
> let f = |x| x + 1; // 美しい

この |x| x + 1 のどこが美しいか理解不能
この後で悲惨と書いてるC++のと50歩100歩のアドホックな書き方

Schemeなどの (lambda (x) (+ x 1)) のほうが遥かに構文が統一的で美しい

585 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 08:44:12.21 ID:F/TDaiUX.net]
rustってJavaからJNIでCを呼び出すのと何が違うのっと

586 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 08:46:52.43 ID:VQegiGIK.net]
何を煽りたいのっと



587 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 10:20:37.37 ID:Lvwt6BNZ.net]
>>574
1. Rustはネイティブコードにコンパイルされる
2. Rustの構文制約はJavaと比べ物にならないほどキツい(良し悪しはともかく)
3. Javaのほうが圧倒的に過去資産がある
こんなもんか

588 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 11:20:14.42 ID:Eio5IVQ5.net]
|x|は単純に?ってなるよな
なんでここだけRubyなんだと。他はC系かML系風味なのに。激しく浮いてる
C++ですらunified(笑)とか言って普通の関数とクロージャを近付けようとしているのに

それとは別に、開き括弧と閉じ括弧が同じなのも後々困らねーかと思ってしまう

589 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 14:20:48.79 ID:fnwYTLZ/.net]
構文はもっとMLに寄せてほしいなあ


590 名前:{ } とか見たくない []
[ここ壊れてます]

591 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 17:22:18.52 ID:sBRqP5fz.net]
do end よりは {} のほうがマシ (個人的に)

592 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 17:24:16.93 ID:t5bNNBCg.net]
シンタックスの話をしだすと結局好みの問題に落ち着く

593 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 18:23:00.24 ID:Eio5IVQ5.net]
C++がtemplateと<< >>演算子で散々苦労しているのを見た後で
わざわざそれを踏襲したりするのは悪い方の好みじゃね?

594 名前:543 mailto:sage [2017/02/24(金) 18:39:46.43 ID:zaWF9UZ/.net]
手のひら返し:クロージャの表現はやっぱML系のほうが優れてる可能性
クロージャを返すクロージャというふうに、連なったときの表現を見る

(* OCaml ウルトラスムーズ。呼び出し部分もシンプル *)
let f = fun x -> fun y -> fun z -> x + y + z;;
print_int (f 1 2 3);;

// rust move無しで書けたならよかった?
// |x| |y| |z| x + y + z; ←うーん?
let f = |x| move |y| move |z| x + y + z;
println!("{}", f(1)(2)(3));

# ruby こうして見ると意外な統一感を感じなくも無い
f = lambda {|x| lambda {|y| lambda {|z| x + y + z}}}
p f.(1).(2).(3)

>>573
rustのが断然シンプルだと思うけど(構文の統一感とやらについてはさておき)
あとlisp系言語の中でSchemeだけがクロージャの扱いが自然なんだっけ?
ちなみにまったく理解してないし、しかも聞きかじりで、多分記憶違いだけど

>>577
そもそもはSmalltalkのブロックの中の縦線なのかなぁ

595 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 23:22:20.10 ID:yM4uvxXG.net]
>> 582
> そもそもはSmalltalkのブロックの中の縦線なのかなぁ
それならこうした方が自然。

let f = :arg1 :arg2 arg1 + arg2;
let f = :arg1 :arg2 { arg1 + arg2 };

それよりこっちの方が良い

let f = (a, b) -> a + b;

`-> T`が戻り値の型の宣言だからこれはないだろう。

こうもならないだろうね。

let f = [ :a :b | a + b ];

無名関数の引数が:arg1で空白区切りは発狂するやつが出る。

matzがなぜ無名関数の引数リストにSmalltalkのブロックの引数リストの構文じゃなくて
一時変数の宣言の構文を使ったかはわからん。

596 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:07:58.70 ID:jGQ3Wak9.net]
`:arg1` は型注釈と混同する
ラムダ計算風に `let f = \x y. x + y` はどうかな



597 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:20:07.77 ID:hUBRL+mA.net]
パラレルワールドのrust文法を議論してて草生える
お前らは何年前に分岐した世界線にいるんだw

598 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 04:54:52.43 ID:nJl4hm2p.net]
何で新しい言語が創られるかといえば、それはもう、C++コードのメンテから解放されたいという宿願のためでしょ

599 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 19:53:48.61 ID:jxiHI5n5.net]
しかし名前が良くないなこの言語は
なんでまたこんな名前にしたんだろうか

600 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:15:31.45 ID:FTYjcOZq.net]
俺は名前は好き
四文字でさえあればいいと思ってる
それよりも嫌なのはifの波括弧

短く書きたいときCなら
if (cond) foo(); else bar();
で、目に優しい

if cond {foo();} else {bar();}
これはたまらなく苦痛
C方式に戻してもらうか三項演算子の導入をしてほすい

601 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:19:33.66 ID:FTYjcOZq.net]
https://doc.rust-lang.org/book/if.html
let y = if x == 5 { 10 } else { 15 }; // y: i32
↑これよりはやっぱ↓
let y = x == 5 ? 10 : 15;

602 名前:デフォルトの名無しさん [2017/02/25(土) 20:37:24.76 ID:gF7KaGBm.net]
>>588
それがC言語でどれだけのバグを生み出してきたか考えたら有り得ないと思うのだが。
”俺は間違わない?” だったらC使ってればいいんじゃね?

603 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:39:21.20 ID:FTYjcOZq.net]
>>590
どれだけのバグを生み出してきたの?

604 名前:デフォルトの名無しさん [2017/02/25(土) 20:42:35.76 ID:gF7KaGBm.net]
>>591
qiita.com/tomohisaota/items/e6995e89b843e1295c08

605 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:43:00.57 ID:AAACSty6.net]
適用の順序が一見して分からないケースがあってクソ

606 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:48:49.11 ID:FTYjcOZq.net]
>>592
ほえー
あーifに波括弧大事、これがあるからやっぱ波括弧大事だなぁ
波括弧ないからこそこんなことになっちゃうんだなぁ
波括弧さえあればこれ避けられたのになぁ
波括弧無しのifなんてあり得ないよなぁ
ってこと?

あとはどれだけのバグを生み出してきたの?



607 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:58:23.81 ID:AAACSty6.net]
>>592を一般化した
if (cond)
  foo();
  bar();
の形式(ただし全角スペースはインデントの代わり)のバグはAppleの例に限らず普遍的なものだろ

608 名前:デフォルトの名無しさん [2017/02/25(土) 21:03:09.97 ID:gF7KaGBm.net]
>>594
多くのコーディング規約で禁止されてる。(例えばGoogle C++ Style Guideとか)。
わざわざそういう項目がある理由は、まぁ言わなくても解るよね?

609 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:04:36.43 ID:OjMnqw5o.net]
僕はそんなコード絶対に書かないしレビューでも見落とさないんですうううううう!!!!!
万一紛れ込んでもテストで拾うしっ!!!!!!!!!!

610 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:08:17.05 ID:FTYjcOZq.net]
>>596
ちょっと茶化したけど、理屈は分からないというわけではないよ

実際にrustのifがこうなってる経緯は知らないけど
現状について少なくともそういう視点で支持する意見があるのは正直驚いた
勉強になりました

611 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:11:22.58 ID:ihKm/PIs.net]
ifのやらかしは有名なプロジェクトでもあったりするよね

612 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:16:11.60 ID:oY1Z/R8w.net]
別に見づらくないじゃんって意見のほうが多数な気がするけど
https://github.com/rust-lang/rust/issues/1698

613 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:17:27.66 ID:A0aZ5Z9S.net]
ブレインファックじゃないんだから、人間に読めるコードとなる言語仕様が必要

614 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:20:30.53 ID:AAACSty6.net]
まあ実際のコードでは無理に一行にまとめず5行に分けろってことだな
let x = if cond {
f()
} else {
g()
};

もしf(cond ? g() : h())みたいな形で使おうと思っていたのなら、そもそもそれ読みづらいから一旦バインドしてからその結果を使おう
let x = if cond {
g()
} else {
h()
};
f(x);

615 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:22:26.82 ID:oY1Z/R8w.net]
あと波括弧外せるようにする提案はここにあるから+1しとけ
https://github.com/rust-lang/rfcs/issues/1616
めっちゃ劣勢だけど

616 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:30:13.94 ID:FTYjcOZq.net]
>>602
一点だけ

let x = if cond {
g()
} else {
h()
};
f(x);

↑これよりやっぱ↓これが読みやすい(個人の感想です)

f(cond ? g() : h())



617 名前:デフォルトの名無しさん [2017/02/25(土) 21:51:13.57 ID:gF7KaGBm.net]
f(cond ? g() : h() ? q() : r() )
と書く奴が現れるデメリットの方がでかいと思うわ

618 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:53:07.56 ID:OjMnqw5o.net]
そしてfだのgだのが本当にただの関数呼び出しであるケースは少ないという

619 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 22:40:54.42 ID:Cjys9ebm.net]
波括弧外せなくてもいい派だけど、
三項演算子は何かいい感じのやつを追加してくれ

620 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 22:48:27.45 ID:jxiHI5n5.net]
if式なら三項演算子はいらないよ

621 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:00:24.91 ID:BrkcZ5hg.net]
if-elseの波括弧外したらtype ascriptionが曖昧になる。

622 名前:デフォルトの名無しさん [2017/02/25(土) 23:54:27.38 ID:+Hmh+RyZ.net]
>>604
ioでも使ってろ

623 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:57:17.74 ID:jxiHI5n5.net]
f( if cond { g() } else { h() } )

624 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:58:32.04 ID:0X9bWbPB.net]
3項演算子とか、関数型の基本のif式(if文じゃないよ)なんだけど、サポートしてねえのかよ

625 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 02:13:52.49 ID:Xq2/OYkK.net]
三項演算子なんてifが文になってる言語でようやく存在を許されるものじゃねえか
波括弧をダサいというのは分かる

626 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 02:26:37.59 ID:kIbkRe9i.net]
if x > 0 { x } else { -x }
if (x > 0) x else -x
個人的にはブレースなしだとelseの前後1トークンの範囲の視認性が低く感じる



627 名前:デフォルトの名無しさん [2017/02/26(日) 02:27:19.95 ID:hKGUofZ0.net]
if文はSwiftやGoとの差別化をしたいってこと?

628 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:17:28.79 ID:dRlELnWs.net]
波括弧省略はLinuxカーネルの連中が使い続けてる。
奴ら頭良いからあれでも上手く回ってるんだろうな。

逆に、波括弧省略するなって言われてる奴らは信用されてないってことなんだよ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<233KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef