[表示 : 全て 最新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/

52 名前:デフォルトの名無しさん [2016/11/18(金) 00:19:24.79 ID:7Bhmrgzh.net]
もうrustも頭打ちだな。資金力的にも限界か?
こりゃ早々にswiftに流れた方がいいんでない?

53 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 00:19:48.50 ID:8Vgx8rP9.net]
おっ、ようやくマクロが#[macro_use]の代わりに普通にuse出来るようになるのか

54 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 00:29:13.23 ID:eBWh43b3.net]
>>51
iconとかどう?
https://www.cs.arizona.edu/icon/

55 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 00:31:08.99 ID:oLAPaOst.net]
>>52
ほほう
https://github.com/rust-lang/rust/pull/37732

56 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 01:03:00.53 ID:E7bW9eot.net]
>>53
ぱっと見Rustユーザと共鳴するような要素がなさそうに見えるんだが
FAQを流し読んだだけだけど

57 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 01:14:06.04 ID:oLAPaOst.net]
>>55
Ponyとかはどうだろう?
www.ponylang.org/

58 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 10:17:38.16 ID:t+31LzEv.net]
AdventCalendarでtokio触ろうとしてる人居るけど、あれ12月までに安定するかねぇ
大幅な改造の途中なので厳しいかも

59 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 12:23:03.10 ID:Mjcgtpxv.net]
整数型の暗黙のアップキャストが無いのは不便じゃない?
前にも書いたけど、配列のインデックスで as usize を頻繁に書かされてつらい。

実行効率的には、同じ処理をC言語で書いた時も、size_tへの
暗黙のアップキャスト処理が入るのかな? 意識してなかったけど。

60 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 15:05:29.01 ID:ujW5dFKb.net]
移植性がRust的には問題なのかなぁ
as usize は環境によってはダウンキャストかもしれないじゃん
今の所明確なポリシーはないが、例えば usize == u8 という環境への移植性も考えて
impl From<u16> for usize が存在しなかったりするし (https://github.com/rust-lang/rfcs/issues/1748)

個人的にそんなにキャストが必要になった記憶は無いんだけど
対策するとしたら、こんな感じでVecのラッパを書くとか
https://play.rust-lang.org/?gist=17c0c0ab946046a5670d78a5ac821a73&version=stable&backtrace=2



61 名前:デフォルトの名無しさん [2016/11/18(金) 15:59:29.27 ID:vbdBJsNN.net]
>>31
firefoxをdisりたいならあっちで

62 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 17:11:13.69 ID:oLAPaOst.net]
'static [T; 0x100]の添え字としてu8を突っ込むことは割とよくあるから、そこだけでも暗黙の変換をして欲しいと思ったりする
impl<T,U,Idx> Index<T> for U where T: Into<Idx>, U: Index<Idx>
を公式に実装したら何か問題があるのだろうか?
過去に誰かしら議論してそうなもんだけど、それっぽいものが見つからない

63 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 18:48:56.40 ID:JDsTmOFu.net]
定型処理用は演算子になるのか。
@演算子はどんな処理を担うのかしらん。

64 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 18:57:53.19 ID:ujW5dFKb.net]
どこかのスライドで &'static str とするべき所 'static str と書かれてたが
この'staticは参照に対するパラメータなんだよな、切るとすれば &'static / str

例えば [i32; 0x100] とか自体は [i32; 0x100]: 'static 以外のライフタイムを持たない
束縛した変数や借用に初めて寿命が付く

>>61
今のRustだと追加できなさそう
(T: Into<T> なので、他の impl Index<某> for 何がし と衝突する)
それ以上にRustコミュニティの暗黙の変換の類に対する反感が大きいっぽいという問題があるけど

65 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 18:59:11.49 ID:ujW5dFKb.net]
T が非 'static のライフタイムパラメータを含まないなら T: 'static、で合ってるっけ

66 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 21:18:08.74 ID:Mjcgtpxv.net]
配列インデックスの件、ググってたらこれが理由とする書き込みがあったんだが、
正直、意味わからん。
ループカウンタがレジスタサイズと異なるとおかしい事になるって感じ?
https://gist.github.com/rygorous/e0f055bfb74e3d5f0af20690759de5a7

67 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 21:34:00.80 ID:aJxYJn23.net]
>>56
なんか思想的に、グリーンスレッドが存在したりしてた頃のRustみたいだな

68 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 10:14:06.26 ID:1EpFjc3X.net]
小さなツールを作ってみてJava版より数割遅かったんだけど、
プロファイラで調べてみたら、どうやらmalloc/freeに相当する処理が
遅いことが分かった

69 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 10:48:44.85 ID:kg262VVv.net]
malloc/free実装者を断頭台へ!

70 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 10:53:20.16 ID:cW+sH+/p.net]
https://github.com/jemalloc/jemalloc/



71 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 11:43:08.65 ID:0HSHfyI4.net]
JVMはひまにならないとfree処理しないから
なんか普通に負けそう

72 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 12:17:15.89 ID:goLgdzFN.net]
足りなくなった時も free するから
常に忙しいときに限って free するハメになるのが実態

73 名前:デフォルトの名無しさん [2016/11/21(月) 12:22:33.26 ID:gVIfBZaZ.net]
おまいらの部屋と一緒だな

74 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 12:30:45.34 ID:cW+sH+/p.net]
ちっ……ちげえし……

75 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 12:32:42.35 ID:1EpFjc3X.net]
>>67
少し補足すると、JITコンパイラが効き始める10ループ目ぐらいまでは
Rustの方が速かった

76 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 12:38:17.81 ID:0HSHfyI4.net]
>>71
そりゃ設計悪いだろ
そういう時はランタイム(GC)特性を気遣って設計しろw

小さなツールならGC回りまくることもなかろう
そうなると常時free処理するGCなし言語の方が不利だわ

77 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 12:49:34.69 ID:cW+sH+/p.net]
小さなツールならVM起動のオーバーヘッドのあるJavaの方が何でもない

78 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 12:52:14.62 ID:2S9X8Lpw.net]
>>72
鋭すぎ

79 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 12:54:12.88 ID:h2bcMzRZ.net]
突き刺さる

80 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 13:53:31.49 ID:cBdbCQ89.net]
>>76
プログラムが小さいとVM起動のオーバーヘッドはほぼ無視できる



81 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 14:12:07.49 ID:0HSHfyI4.net]
逆でないか、JVM立ち上げでGCスレッド、メインスレッド等々の初期化で結構時間かかるぞ
ソフトウエア全体の処理が大きいと誤差に収まるけど
今回はalloc/freeがネックって言ってるから、そこは計測時間に入ってないと推測

ループ開始から終了までとSystem.gc呼んでの強制GCまでを計測したら、トントンないしRustのが早いってことになって欲しい(希望
それでもRustのが遅いなら断首台へ

82 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 16:38:54.33 ID:cBdbCQ89.net]
>>80
逆ではない
プログラムが小さいとは書いたがプログラムの演算量が小さいとは言っていない
ツールが小さくてライブラリをあんまり読み込まなくていい時はJVMの初期化なんて誤差

83 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 16:49:33.16 ID:OhDwUouz.net]
んん?
GCが回りまくらないような、演算量の小さなツールの話じゃなかったか?

84 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 16:54:29.52 ID:cW+sH+/p.net]
アレや、プログラムは小さいけど演算量が大きくてなおかつGCが回るほどヒープを消費しないアレや
例がパッと思いつかないけど、プリミティブ型ばかり処理してれば当てはまるんじゃない?

85 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 16:56:10.15 ID:cW+sH+/p.net]
>>83
いや待て、自己レスになるけど、それじゃあRustでもfreeは発生しないわ

86 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 06:33:32.35 ID:vdf1OFJq.net]
昨日、Rustの初心者向けイベントがあったらしいね。
検索してみると、100人ぐらい集まったみたい。
初心者向けのはずなのに何故か難しい、って感想の人が多い。
あと、拠点を作っても外人に襲撃されて奪われるらしい。

87 名前:デフォルトの名無しさん [2016/11/26(土) 11:52:46.03 ID:S9oyLAu3.net]
Mozillaってところが不安要因だな・・・

88 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 15:33:02.63 ID:T6V/AejO.net]
crate logを使うと実行ファイルにビルド環境のフルパスが埋め込まれるのがモニョッとする
自分で使わなくても依存してるライブラリもあるし
専用のビルド環境作るか、そもそもソースで配布するかしないと
配布バイナリにユーザ名を埋め込んじゃうよぅ

89 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 15:53:47.96 ID:GTqt9DX8.net]
PR出して直してくれ

90 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 23:43:32.36 ID:NwIkJeSB.net]
>>87
確認してみたけど、logで使われてるmodule_path!() はcargoディレクトリ以下の
相対パスしか入らないから、ユーザ名は入らない。

但し、logと無関係にデバッグ情報としてフルパスが入る場合はある。
Linux版はdebugビルドでのみフルパスが入る。
Windows(MSVC ABI)版は、releaseビルドでも.pdbファイルへのフルパスが入る。
stripすれば消えるんじゃない?



91 名前:87 mailto:sage [2016/11/29(火) 18:41:45.92 ID:8U8Bj8BQ.net]
>>89
確認、ありがとう
調べ直したところcrate logのみに依存した場合、フルパスは存在せず
おっしゃるとおりlogは無罪 お騒がせしました

以下、環境は Linux / i686, x86_64 / stable 1.13.0 / []
[ここ壊れてます]

93 名前:87 mailto:sage [2016/11/29(火) 18:44:01.08 ID:8U8Bj8BQ.net]
途中で切れてしまったので再掲

以下、環境は Linux (i686, x86_64) stable 1.13.0 "cargo build --release"

調べたところlogの出力の為にenv_loggerとリンクしている場合、
依存しているaho_corasickやregexへの
${HOME}/.cargo/registry/src/git-****/***以下のフルパスが埋め込まれてました
これは"strip -s"でも消せず

はて? と思い aho_corasickのみに依存したプロジェクトを作成してみると
同様にフルパスの存在を確認
これがtoolchainによる差異なのか自分には判別できませんでした

以上、単なる状況報告ながら、一報まで 長文お目汚し失礼しました

94 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 20:05:45.86 ID:5ToPonfe.net]
env_loggerでもやっぱりフルパスは入らないと思うけど、
それはともかく、env_loggerは依存ライブラリが多すぎて
リビルドが重くなるから嫌い。正規表現はオプション機能でいいのに。

95 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:38:40.43 ID:ejQm3rha.net]
>>92
regexはoptionalだからdefault-features = falseで外せるとは思うけど

96 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 23:59:57.63 ID:dyH4Mas/.net]
これ見ると意外とRustのウェブフレームワークって重たいのなorz
ttps://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=plaintext

上位に上がってるのはガチで速度だけを追求したLightWeightなフレームワークだからなんだけど
Rust製の速度を突き詰めたフレームワークが欲しいと思った今日この頃

97 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 00:25:33.03 ID:MHSZZ/vj.net]
現状のRust産フレームワークは非同期処理とかまともにできてないからなあ

98 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 00:37:52.17 ID:vsoRl3Y/.net]
その辺りはきっとtokioの五人が何とかしてくれるさ……

99 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 00:39:42.77 ID:hH98Vq+f.net]
per secでどれだけ捌けるかってレベルだから下手な非同期は足引っ張るだけじゃね?
Cとか並列でソケットを大量に保持/処理してるコードでもなかったぞ

100 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 00:44:29.48 ID:hH98Vq+f.net]
>>96
tokioとか高レイヤー過ぎて無理だろw
と思ったけど、tokioの計測サンプルないから実はそこそこの性能出てる可能性はなくもないか



101 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 00:57:56.07 ID:vsoRl3Y/.net]
futures-rsで書かれたPoCなHTTPサーバで、Javaのrapidoidにちょっと勝ってるってレベルだから……>>94と見比べる限り駄目っぽいね
aturon.github.io/blog/2016/08/11/futures/#zero-cost
これをtokioで書くともうちょっと速くなっただとかなんとか……はい
https://github.com/tokio-rs/tokio-minihttp/blob/c88742e2215eabd13ed33d187fc0ba205e50f362/README.md

102 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 01:17:22.42 ID:6QW+GvXS.net]
Tokioの五人って誰だよ
@alexcrichtonと@carllercheと……@aturon?@seanmonstar?

103 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 11:47:17.94 ID:pDCpu3xK.net]
そして@leader

104 名前:デフォルトの名無しさん [2016/12/03(土) 01:53:06.87 ID:OSKmiXal.net]
@nagase @matsuoka @yamaguchi @joshima @kok

105 名前:ubun @kojima

だろ?
[]
[ここ壊れてます]

106 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 00:07:20.42 ID:YOh8FCdQ.net]
Rustの短所って何がありますか?
言語を選択する上で短所を知っておきたいです。

107 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 03:16:51.77 ID:xGw5fwKi.net]
>>103
妖怪ボローチェッカに邪魔されること

108 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 08:17:32.56 ID:EFquH9+I.net]
マクロで処置出来るけど、意外と文法精査が終わってない

109 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 14:32:28.10 ID:DNLmzaEu.net]
新興言語全般に言えるが、実績とノウハウと教材と開発環境とライブラリが少ないのが短所
上でも出てるけどボローチェッカに怒られることが多いし、データ構造でもあんまり気を抜けない

110 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 16:14:34.93 ID:xGw5fwKi.net]
イテレータっぽいオブジェクトから値を1個ずつ取り出すfor文の途中で
そのイテレータ自体に読み取りアクセスできない問題って、何か回避策あるの?

他言語でXmlReaderとかHogeParserとか使う時に、そういうシチュ有るよね?
標準ライブラリのイテレータ生成メソッドがことごとく変な独自structを
戻り値にしてるのと関係あるのかな。



111 名前:デフォルトの名無しさん [2016/12/05(月) 16:24:10.83 ID:dF177W8B.net]
途中で要素数変化してんじゃね

112 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 16:51:20.80 ID:EFquH9+I.net]
普通にボローチェッカがキレてそう
for構文が所有権持っててブロック内で所有は無理でないかね

113 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 16:54:43.02 ID:xGw5fwKi.net]
要素数は変更しないよ。
でも、現在のカーソル位置を読み取るとか、次に来る要素をpeek()とか
したい場合あるでしょ?

114 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 17:03:26.68 ID:DNLmzaEu.net]
whileとかloopを使うとか、peekの代わりに前の値を保持したりカウンタを用意するとか、不格好になるけど回避策はある
for文の中は真っ当な繰り返しだけっていう縛りがあると思えば気持ち悪さが低減できるかも

115 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 19:15:14.98 ID:3+VMIaiU.net]
木構造も舐められるインターフェイスなんでカーソル位置みたいなのを
提供しないのは理に適ってる

116 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 22:50:17.88 ID:LCk8g+4Z.net]
while let Some(item) = iter.next() {
}
なら中でpeek呼べるかと
itemがiterをborrowしてるとだめだが

117 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 22:50:53.09 ID:dPl+aGns.net]
while let便利やで

118 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 22:51:41.39 ID:dPl+aGns.net]
被ったwww
while let便利だよね

119 名前:デフォルトの名無しさん mailto:sage [2016/12/06(火) 04:18:15.63 ID:LdzuyWCm.net]
>>113
while letは忘れてたわ。
でも、今回はまさにその、itemがiterをborrowしてるパターンだった。

120 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 01:56:30.98 ID:IiMNrJPA.net]
Rustって、なんでも参照でゼロコピーを達成するのが偉い風潮だけど、
その効果って、どの程度だと思う?

大雑把なマイクロベンチをすると、&strでループを回してる関数を
Stringにあえて書き換えると、処理時間が約2倍程度になる。
桁数は変わらない。
コード書く時間は半分以下になる場合有りそう。



121 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 02:24:30.49 ID:DjbUzNNG.net]
>>94で同じくゼロコストを唱うgoにボロ負けしてるくらいの効果じゃね?
唱い文句に釣られて使って、全体的にへっぽこな書き方したら言うほどでもない的な意味で

122 名前:デフォルトの名無しさん [2016/12/09(金) 15:00:34.04 ID:n+0GjpPi.net]
>>94のベンチマークでgoのフレームワークに大差をつけられてる原因って何?
hyperがhttp/2に対応してないからとか?

123 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 18:50:36.16 ID:JXyfLORs.net]
>>119
nettyが高ランクなのを見ても、普通に言語の速度を計ってるんじゃなくて、
並列処理性能を計ってるんでしょ。
同じサイトでSmalltalkが高ランクにいるグラフを見た気がするし。

124 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 18:57:53.53 ID:/TjG9z/N.net]
prefork系は別として、ginとironの比較だとフレームワークのオーバーヘッド差分じゃない?
コード見てもそう特異なことをしてるようには見えず

125 名前:デフォルトの名無しさん mailto:sage [2016/12/17(土) 07:52:38.19 ID:5jD7BRsE.net]
https://internals.rust-lang.org/t/beta-testing-rustup-rs/3316/204
rustup 1.0.0 is out.

126 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 03:17:03.88 ID:no0nc4ME.net]
以前は、opt: Option<T>について
if let Some(v) = opt { /* ... */ }
の代わりとして
for v in opt { /* ... */ }
を使うのは気持ち悪いと思ってたんだが、英語として読むとforの方が自然なんだよな
それに気づいてからはelse節が不要なときはforばかり使うようになった

127 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 04:02:19.92 ID:z0dqDzp7.net]
Rust初心者質問させて
インストールしたけどcrate.ioからダウンロードできないみたいでcargoがこける
Githubでなんかするらしいけど何すればいいの?

128 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 04:08:36.62 ID:no0nc4ME.net]
>>124
何を使ってインストールしようとしてる?
今なら↓を使うのが一番簡単だと思う
https://www.rustup.rs/

129 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 04:10:19.20 ID:no0nc4ME.net]
「何を使ってインストールしようとしてる?」じゃなくて「何を使ってRustをインストールした?」だわ

130 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 05:29:42.61 ID:ONLzCd75.net]
>>124
cargoのエラーを貼ってくれんと何も分からん (´・c_・`)



131 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 05:37:13.59 ID:1Hajl9YU.net]
rustupはあまり関係なくね?
確かにそっちを使った方が確実ではあるだろうが

132 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 09:31:39.45 ID:NHfwgv45.net]
>>123
if let Some(a) = Some(1) と for a in Some(1) と Some(1).map(|a| {}) をrustc -Oでビルドしたらmapが一番バイナリ容量小さいか
英語的に云々はC言語の古き良き文化で気にする気ないけど、zero cost目指す的にはどれが一番良いの?
--emit=llvm-ir を読もうとしたけど数行の.rsですら読める気がしなかった:(

133 名前:デフォルトの名無しさん [2016/12/18(日) 14:27:11.90 ID:VFzWAIXP.net]
>>124
会社とか学校とか?
だとしたらプロキシ設定が必要だった気がする。

134 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 03:58:18.07 ID:LzkIf2kw.net]
>>129
map() は遅延評価されるから、そこはforeach()だろって思ったら、
そんなメソッドは無かった。

135 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 04:02:10.67 ID:5+NGkOeZ.net]
遅延評価されるのはIterator::mapであってOption::mapは先行評価

136 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 13:32:12.10 ID:TQft0DAu.net]
>>132
効率を考えればそれが正しいのかもしれないけど、統一されてないのはダサいね

137 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 13:40:08.64 ID:HD62Gbfy.net]
mapにしてもforにしても、OptionとIteratorを視覚的に区別しづらいからそういう用途ではあまり使わない

138 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 15:40:54.59 ID:6JjvzXZF.net]
性能無視して見映えで選ぶ方がダサいと思った
forやmapがif letに比べて性能良いか知らんけど

139 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 16:08:30.40 ID:MHiDziMA.net]
持続可能な開発

三ヶ月後に見直してうんざりしないコードを

140 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 16:38:33.60 ID:6JjvzXZF.net]
rustから3ヶ月離れて再開したらborrow checkerにウンザリした
forだのmapだのは使うなら常用するものだし、これで持続しないならPGやめるよ



141 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 22:05:49.13 ID:fp1/OlA8.net]
ここでmatch派が登場!

142 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 22:12:29.27 ID:CJ2gtWfF.net]
ジャニオタか

143 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 22:16:09.38 ID:PYFsy3LE.net]
少なくともコードベース内で統一されてないと気持ち悪い
多様性は悪だわ

144 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 23:57:06.74 ID:fp1/OlA8.net]
唐突に始まるRubyディス

145 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 00:26:43.08 ID:ej8UmSNF.net]
シンタクスが気に入っただけでRustでゲームを作るのは無謀?
もちろん2Dゲームエンジンはどこかから借りてくる

146 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 00:59:31.96 ID:C1GPbqLl.net]
>>142
困難はあるけど それはC/C++と同じ程度で
無謀ってほどでもないんじゃないかな
設計を試行錯誤するのはRustのがC/C++より楽だと思う

自分は rustlang + OpenGL(GLES2.0/GLSL1.0) + SDL2 で3D書いた
ttp://i.imgur.com/SrBiFHe.gif

147 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 01:01:57.94 ID:DAWAuc9g.net]
やっぱりGCなしはいいよねということでこんなのもあるよ
qiita.com/Pctg-x8/items/cbf8c8bb5e8825ba715a

148 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 02:05:19.61 ID:Pbl/pRNJ.net]
Rust and the Future of Systems Programmingの動画シリーズ、初回は閲覧数2万越えてるのにしまいには1/10未満になってて笑う

149 名前:142 mailto:sage [2016/12/21(水) 12:27:04.23 ID:ej8UmSNF.net]
>>143 どうもありがとう
ハイカラならやめとけと言われるかと思ったけど、
頑張ればなんとかなりそうね
3Dスゲーっす(!)

>>144 ありがとう
やっている日本人もいるんだねぇ

150 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 12:40:43.96 ID:kCrlwcjM.net]
>>143
これのどこが3Dなんでしょう



151 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 14:53:32.77 ID:C1GPbqLl.net]
>>146
Rust人口が増えて欲しいので ぜひやってみて

>>147
『視差遮蔽マッピング/Parallax Occlusion Mapping』をやってる
子細はググって下さい

152 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 15:09:44.32 ID:wjBBiIkf.net]
目が不自由だからかな
奥行が全く感じられない






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

前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