[表示 : 全て 最新50 1-99 101- 201- 301- 2ch.scのread.cgiへ]
Update time : 09/03 20:58 / Filesize : 75 KB / Number-of Response : 305
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

プログラミング言語 Rust 4【ワッチョイ】



1 名前:デフォルトの名無しさん [2017/12/24(日) 18:27:01.98 ID:EGydBhQv0.net]
Mozilla発のプログラミング言語「Rust」のスレです

■公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

■ワッチョイ
スレ建て時、一行目に
!extend:on:vvvvv:1000:512
を入れること

■派生元スレ
プログラミング言語 Rust 4
https://mevius.5ch.net/test/read.cgi/tech/1507970294/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

44 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 14:01:02.73 ID:L9OfLhwQ0.net]
ここ

45 名前:デフォルトの名無しさん mailto:sage [2018/02/14(水) 10:32:44.85 ID:Sny1AUMZ0.net]
c++もそうだがコンパイラに機能を詰め込むってのがそもそも筋が悪い

46 名前:デフォルトの名無しさん [2018/02/14(水) 16:35:43.73 ID:wToAct7f0.net]
>>45
どういうこと?じゃあどうすればいいの?

47 名前:デフォルトの名無しさん mailto:sage [2018/02/14(水) 18:27:22.03 ID:KakS2s960.net]
asm!だよ

48 名前:デフォルトの名無しさん mailto:sage [2018/02/14(水) 19:14:50.70 ID:Sny1AUMZ0.net]
>>46
ライブラリ、もしくはツールに任せる。

49 名前:デフォルトの名無しさん [2018/02/15(木) 02:06:38.25 ID:mcN0VL7z0.net]
>>48
やっぱりちょっと分からないな。
RustやC++のどの辺がコンパイラに機能を詰め込んでると思うの?
ライブラリorツールに任せるってのもどの辺を任せたいのかな?
話がザックリし過ぎて言いたいことがよく分からないんだが。

50 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 14:13:53.00 ID:exgu/6oKM.net]
プリプロセッサマクロのことかな?あとは型システムとかGCのことかな?ライブラリに任せるの意味がよくわからんが…

51 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 17:01:00.96 ID:OS8rqPvzd.net]
C++はコンパイラの方もだけど標準ライブラリでの機能実現も相応に多くて結果ソースの記述が煩雑になっているのは既知の事実でしょう
ライブラリや実装に任せた結果APIの統一が取れなくなって結局細かな仕様策定を余儀なくされたSchemeを見ても銀の弾丸でない事は明らかだよね
それに出来る事を増やすという点においてライブラリは有用だけど変数の不変性や型システムのような制限をする事に関してはコンパイラによしなにしてもらうより他ないよ

52 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 01:22:14.41 ID:W1XJdyx10.net]
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆



53 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 07:39:34.93 ID:455TYoTb0.net]
やっとstableでrustfmtできるようになったな

54 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 11:54:10.92 ID:sOKjApWVa.net]
どうせ明日にはまたnightly限定になってるよ

55 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 14:44:20.68 ID:o2oszjec0.net]
最近のアップデートつまんねえなあ

56 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 15:41:33.96 ID:xYOe+Cvi0.net]
>>45は言語仕様の追加、更新が気に入らないんじゃないかな
try!の代わりに?なんて以ての外だ、みたいな?それ以外に思い付かなかったけど
1.0以前に@や~を削除してライブラリにぶん投げた辺りは希望通りな気がする

基本的に電池入りじゃないRustはライブラリやマクロの代わりの言語仕様の追加じゃなく
より効率的なバイナリを吐くための言語仕様の追加が多いイメージだけどなぁ、impl Traitとか

57 名前:デフォルトの名無しさん [2018/02/16(金) 17:59:54.40 ID:ItA0QsEV0.net]
>>56
あー、そういうこと。?記法は確かに若干違和感あったかもな。
でも実際、あれは便利なんだよなぁ。
File::open(path)?.read_to_string(&mut buf)?みたいに繋げられるから。
try!(try!(File::open(path)).read_to_string(&mut buf))は読みづらい。
かといって、
let mut file = try!(File::open(path));
try!(file.read_to_string(&mut buf))
みたいに2行に分けるのも面倒だし、無駄なローカル変数も出来れば避けたい。
結局、あれが妥当な判断だったと思うけど。
まぁ、stableにする必要あったのか?ってところで賛否両論あるかもね。

58 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 19:47:30.32 ID:o2oszjec0.net]
box キーワードは何時 stable になるんだ?

59 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 11:13:34.80 ID:J1S1NncJ0.net]
boxキーワードはどういう時にうれしいのかがわからん

60 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 11:16:00.80 ID:kwPbHgTn0.net]
明らかに二行に分けた方が読みやすいわけだが。
新しい機能マンセー厨ってそういう感覚の狂いについて無自覚過ぎんだよね。

61 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 13:27:59.06 ID:Nh87YVhF0.net]
俺も違和感はあるけど、多くの人が賛意を出して採用されたんだから
>>60や俺の感覚が狂ってるんじゃね?自身の感覚の狂いって当然ながら無自覚過ぎんよ

boxは在り様の総意を取るの面倒だし、目下はBoxで運用できてるしで、いつまでもstableに来なさそう
ヒープを多用したい人には文法にあればありがたいんだろうけど、そもそもヒープが好まれんしのう

62 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 14:16:54.60 ID:+W6LcK0d0.net]
boxっていきなりヒープにメモリ確保されるのが保証されたりするんじゃないの?
今はコンパイラ次第じゃん



63 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 14:41:36.65 ID:IpKTSZVJ0.net]
ironって今メンテされてないのか
最近のweb FWはrocketの方が人気なんかな
nightly専用だからまだ手を付けてないんだけど

64 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 20:32:28.58 ID:QFQHB0DO0.net]
>>59
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/box-syntax-and-patterns.html
> このように書くことでパフォーマンスを犠牲にすることなく、柔軟性を確保することができます。

知らないの?

65 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 23:42:00.44 ID:9NiO1PZdF.net]
それはInPlaceとかPlacerがあればよくてbox inはただのsyntax sugarでは

66 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 08:04:09.95 ID:SMMCMA600.net]
分解のほうは新しいの?

67 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 08:27:52.42 ID:5lvSpjte0.net]
分解の方がよほどsyntax sugarじゃないのかいな
NightlyのInPlace, Placer使わなくても、Stableの環境でmacro使って実現出来そう

68 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 10:49:08.55 ID:/vdt0GUK0.net]
boxって名前はBox<T>以外に使う場面で綺麗に見えない
place <- exprは代入みたい

69 名前:デフォルトの名無しさん [2018/02/20(火) 18:44:44.84 ID:QamN8HfjM.net]
tokio-coreなくなるんか
一通り組み上がった後の悲しいニュース

70 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 21:05:12.64 ID:n66ylLug0.net]
まじか、ちょっと辛いな
依存してるライブラリも結構あるよね

71 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 00:49:13.91 ID:s9stOBAB0.net]
ワッチョイなしの方アンチが暴れてる

72 名前:デフォルトの名無しさん [2018/02/21(水) 00:56:09.93 ID:kjg0KAFU0.net]
tokio系列のやつってtokioとかtokio-coreとかtokio-ioとかtokio-protoとか複数あってよく分からんのよね
tokio-ioのリポジトリにはtokioに移動したからもう使うなって書いてあるし
tokio-coreは移動じゃなくて廃止予定って書いてある…
tokio-protoはそのまま?tokio-timerとかtokio-serviceとかよく知らんリポジトリもあるし…
誰か各クレートの特徴(役割)と関係性を教えてくれ



73 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 19:02:38.89 ID:ariB2x93M.net]
>>71
あっちは、アンチが立てたキチガイ専用スレだからいいんだよ

74 名前:デフォルトの名無しさん [2018/02/21(水) 19:11:26.04 ID:2b1o4F67M.net]
コミットを追うとtokio-coreはtokioに変わったように見える
tokio-core=tokioでtokioの本体

tokio-ioはtokio-coreを使って非同期ioを実装したものだったがしゃらくせえのでtokio-coreに取り込んだのかな

tokio-protoはtokio-coreを使ってネットワークプロトコルを実装したものだったがしゃらくせえからtokio-coreに取り込んだのかな

つまり tokio = tokio-core + tokio-io + tokio-proto

か?

75 名前:デフォルトの名無しさん [2018/02/21(水) 23:28:42.27 ID:J5LO2Gvl0.net]
[] [[[ [[ [] ][ [] [ ] [] ][]] [[[ [] }

76 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 13:48:53.41 ID:H839Tp+80.net]
tokio-protoとtokio-serviceってtrait宣言が主体のインターフェース定義クレートだったような?
前者はクライアント、後者はサーバに適したインターフェースが定義されてた覚えがある
io, timer, cpupoolなんかはユーティリティ機能が実装されてたよな

統合の基準はどこかで議論されたんだろうけど、どこでやってたのかな

77 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 17:58:52.09 .net]
【お知らせ】Packt出版より Network Programming with Rust が発売されました。

78 名前:デフォルトの名無しさん [2018/03/07(水) 19:47:20.60 ID:LRCrToXv0.net]
https://play.rust-lang.org/?gist=cb511b34bc3ffbb43b8589a24156337a&version=stable
let mut foo = Foo{ a:0, b:0, c:0 };
let aaa = ["5", "432", "3"].iter().flat_map(|i| i.parse::<u32>()).collect::<Vec<_>>();
foo.a = aaa[0];
foo.b = aaa[1];
foo.c = aaa[2];

Rustってこれ以外に書き方ありませんか?
tupleでやってみるとleft-hand of expression not validと出ました

79 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 20:33:15.97 ID:sBnyF32KM.net]
だめなコードはらないと何がしたいか分かりません

80 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 20:41:08.80 ID:jzt3Aumo0.net]
だよなw 何をしたいのか分からんよなw

81 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 21:26:04.44 ID:LRCrToXv0.net]
>>79
大量のフィールドに値を入れるのって
一行一行書くしかありませんか?

82 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 21:29:17.37 ID:jzt3Aumo0.net]
一行にしたいなら
foo = Foo { a: aaa[0], b: aaa[1], c: aaa[2] };
でも良いだろ。
部分書換なら
foo = Foo { a: aaa[0], .. foo };
とかもある。



83 名前:デフォルトの名無しさん [2018/03/08(木) 01:34:04.75 ID:4NfI3sqt0.net]
1.24.1は何のリリース?

84 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 12:10:25.91 ID:eSLd4gfv0.net]
朗報: ついにウェブプラットフォームでRustが速度性能トップを取る
https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=plaintext

なお、JSON操作を伴うとJavaにも劣る模様
ツリー制御が不得意すぎて笑うわ

85 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 13:43:13.82 ID:Q5vGc4iJ0.net]
JSON serializationはそんなに悪くないんじゃね?tokio-minihttpで96.2%出てる。
それよりSingle QueryとMultple Queryが遅いのが問題じゃね?

86 名前:デフォルトの名無しさん [2018/03/11(日) 17:59:47.19 ID:9uw0Jco60.net]
serdeでシリアライズだけするぶんにはjavaの1.4倍くらい早かったんだけどなあ(俺調べ)

87 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 21:44:59.24 ID:zUTKt+H50.net]
Rust book first editionからの変更知りたいんだけどバージョン差分どこでまとめられてる?

88 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 21:47:17.89 ID:zUTKt+H50.net]
https://github.com/rust-lang/rust/blob/master/RELEASES.md
ここか

89 名前:デフォルトの名無しさん [2018/03/18(日) 07:04:56.79 ID:esGNO3D8M.net]
1.24.1てなんなんだろ

90 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 20:50:19.82 ID:M8FazHkP0.net]
>>83>>89
なんで自分で調べようともしないの?

Rust Languageさんのツイート: "Announcing Rust 1.24.1: we had some regressions in 1.24.0, so we've released a patch release. Please check it out! https://t.co/zrItc0qiqD"
https://twitter.com/rustlang/status/969367994072739841 👀
Rock54: Caution(BBR-MD5:b73a9cd27f0065c395082e3925dacf01)


91 名前:デフォルトの名無しさん [2018/03/18(日) 21:36:06.49 ID:kfSBwJmk0.net]
Iterator::mapに渡すクロージャ内で、クロージャ内の変数への参照を持つstructを返したい時ってどう対処するのが正解ですか?
https://play.rust-lang.org/?gist=a15e0dfa10339570fef5b9225761a9f0&version=stable

92 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 23:09:22.36 ID:UNqGf23T0.net]
does not live longエラー関係は自分が思ってるより広い視点で見た方が解決するんじゃないかなあ
Hito.konomi_no_mochiは参照なんだから、参照元としてVec<Mochi<'a>>を保持しないと駄目なんじゃね?
=>mochiがMapになってて分かりにくい
=>とりあえずcollectさせてVec<Mochi>持ったら動いた
みたいな。
https://play.rust-lang.org/?gist=6c9947e3584f1feb5bb14f07d27aa9c7&version=stable
多分、頭の良い人ならもっと綺麗な説明と解法があるんだろうけど



93 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 07:39:54.89 ID:bmK7HIBH0.net]
>>92
ありがとうございます
仮引数mのライフタイムはmain関数が抜けるまでだから通るということで合っていますか
またVecではなくIterator::Mapだと駄目な理由は、Iterator::Mapはcollectされるまでクロージャが実行されないから…とかでしょうか

94 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 13:44:00.51 ID:aUxUFBJe0.net]
>>93
仮引数mのライフタイムはクロージャ内なのは変わらないよ。>>92は仮引数を参照じゃなく消費してるから通る(>>92の&mじゃなくてmで良い)
クロージャが実行されないから、ではなく、mochiの値が消費されてるのにその参照を持たせようとしてるから駄目
試しに>>91のコードでmochi.map(|m| { 0 })とか書いて、mochiをprintln!に渡してみようとすると怒られるよ。もう使ってるって。

そこらへんの細かいルールを覚えるの大変だし、コンパイラもまだ分かりやすいエラーメッセージ吐いてくれないから、
・参照を使うときは、参照元をちゃんと生かしておくこと
・参照を使った構造体は、元の値を修飾(見方を変える、新しい機能を持たせる等)するようなパターンに限定すること
を守るようにした方がいいよ

95 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 21:04:17.46 ID:bmK7HIBH0.net]
>>94
「消費したものの参照を持たせるのは駄目」と「消費しているから通る」はそれぞれはわかる気がするのですが、両方となると…
前者の「消費したもの」と後者(main関数中生き続けるMochiのベクトル)は別物だと思うのですが、
前者で駄目な理由は関数中生き続けるMochiがない(mapを呼び出しただけでは駄目)ということですか?

96 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 23:26:36.74 ID:aUxUFBJe0.net]
「消費されるので通る」じゃ言葉足らずでした。「参照じゃなくmoveして延命している」の方が通じるかも

>>91のコードを整理すると
1. HitoはMochiの参照を持ってるから、Hitoが有効なスコープ中はMochiも有効じゃないといけない
2. mochiはinto_iterで作られてるからMochi型を吐き出す、けど所有はしない
3. なのにmochizukiはmochi.map()で各要素への参照しか持たない
4. mochiから吐き出されたMochiの受け皿が無いんでエラーになる

これを解決するには
1を変えてHitoがMochiを所有するようにデータ構造を変える
2で作られたMochi型の値をしっかり保持する変数を用意する
の2種類くらいしか思いつかん。
Does Not Live Longエラーはライフタイムがどうのこうのと小手先で弄るより、
値の所有者を明快にしたり、データ構造を見直してみると案外素直に直せるのが経験則。

97 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 13:21:28.84 ID:RDB2KieC0.net]
>>96
loop{
let (a, cond): (&str, bool) = get_too_many_str();
let m = Mochi{aji: a};
let h = Hito {m : &m};
if(cond){ break; }
}
// ここでhのvecが欲しい

この場合は、ムーブする(ループより長いライフライムの)変数がないので1の手法しかないということになりますか?
そこそこでかい文字列を扱っているので気を使っていたのですが、この場合Stringにすべきでしょうか

98 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 14:30:32.82 ID:UUyTwokV0.net]
大きい文字列を扱うから参照にしたいってのは普通にあるし分かるけど
Hitoが&MochiでなくMochiをメンバに持つようになっても文字列のコピーは行われないよ

自分なら>>97のget_too_many_str()が返す&strの元を誰が保持するのかをまず気にする
そこをしっかり把握してれば文字列のコピーは最低限になるはずだから

99 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 16:38:27.06 ID:P+YmZBwi0.net]
>>97
んー、自分なら そこだけに使うMochiCow型作ってでも
ajiの型をCowにして凌ぐかな

100 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 11:43:51.64 ID:cBTkQiaM0.net]
&strの元もloop内の変数が持っています
hのvecを作るにはコピーは避けられないようですね…
&strからStringに変えたところhvec.push(h)してもエラーにはなりませんでしたが、
スコープを抜けたはずの変数が使える理由ってどこかに書いていますか?

101 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 14:53:30.44 ID:9rI6JIRt0.net]
そりゃloop内の変数hから、loop外のhvecに所有権が移動したから

頭の中に入れておける物なんて極わずかだし、場当たり的にdoes not live longエラーに対処するのは大変なので、
・値の所有者はどの変数であるべきか
・データ構造はどうあるべきか
という観点だけ念頭にいれて、「性能を稼ぐために参照を使おう」って考えを一旦外すとスッキリするよ

102 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 17:27:59.27 ID:YDqAu+LL0.net]
こっちが本スレと聞いて



103 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:42:18.86 ID:eccSQZbu0.net]
しかしここには俺はいない

104 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:42:37.31 ID:eccSQZbu0.net]
まちがえた
俺しかいない

105 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 22:10:33.68 ID:33fSNzq50.net]
俺もいるぞ

106 名前:デフォルトの名無しさん [2018/04/15(日) 22:44:53.22 ID:UX4y5Mn1a.net]
てst

107 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 07:13:50.32 ID:pzKlDNeX0.net]
まともな話題はslackいっちゃうのかな。

匿名で喋りたいのはアンチ向きか

108 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 02:44:07.65 ID:kruQSPFC0.net]
別にアンチって訳じゃないけど、コンパイルが遅すぎる(特に最適化掛けた場合に)のはどうかと思う。
実行が速くてもその生成に時間が掛かれば無意味でしょう……。

109 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 05:31:20.68 ID:4Vs0GKvV0.net]
>>108
Rustで組んだ新Firefoxの動作が2倍ほど速くなったのは無意味?

110 名前:デフォルトの名無しさん [2018/05/08(火) 07:00:09.03 ID:EnN/pyur0.net]
逆なら理解できるけど

111 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 08:36:06.07 ID:Hy6hpXT/M.net]
まあコンパイルは遅いわな。
ていうかcargoの仕組みが問題なだけか?

112 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 20:14:50.84 ID:T0pMALEX0.net]
rustcで単一ファイルだけコンパイルすると結構速いなと思った
cargoって警告無視のオプション(-Awarning)の有無でも一からビルドしようとしたりちょくちょくお粗末



113 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 20:35:06.28 ID:zLx1ZI770.net]
なんかRustってテスト用と製品用で別々の最適化を施せるんじゃなかったっけ。
俺は自分の為だけにRustを使ってるのであまり気にしたことがないが。

114 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 12:11:46.40 ID:OzyUIrxEM.net]
https://blog.rust-lang.org/2018/05/10/Rust-1.26.html

impl Trait来たから
久しぶりにさわってみるかな

115 名前:デフォルトの名無しさん [2018/05/23(水) 12:09:39.17 ID:6kVmIohDH.net]
ほとんどc++に見えるの俺だけ?

116 名前:デフォルトの名無しさん [2018/05/23(水) 12:29:18.87 ID:4/oN1Bt60.net]
みんな言ってる

117 名前:デフォルトの名無しさん [2018/05/23(水) 23:15:50.94 ID:Au5e7VGg0.net]
確実にどんな人でも可能なネットで稼げる情報とか
念のためにのせておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

C717P

118 名前:デフォルトの名無しさん [2018/05/28(月) 09:59:15.77 ID:N9/pBFPWH.net]
rustを始めたんだけど
分かりそうで分からなくて
イライラする

なんだこの言語

119 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 11:01:04.58 ID:4ZqBL5Re0.net]
他の言語の経験にもよるけど 3000行ほど書けば慣れるよ(適当

120 名前:デフォルトの名無しさん [2018/05/28(月) 11:14:23.86 ID:N9/pBFPWH.net]
actix_webでちょちょいとwebサービス作ろうと思っただけなんだが

externとuseみたいに、なんで同じようなものが2つ有るのとか

trait?、インプリすればいいだけならなんでこんな名前なんだとか

121 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 11:44:10.53 ID:4ZqBL5Re0.net]
察するにJava経験者かね

externは外部ライブラリのモジュールを参照する宣言
modは自身のフォルダ以下のモジュールを参照する宣言
useはモジュールの要素(Struct or Trait)を取り込む宣言

pub use self::MyStruct; // 要素をexportしたり
use std::io::Error as IOError; // as で別名つけたり
use super::Result; // 上位の型を取り込んだり(mod.rs以外からだと同一フォルダのmod.rsを見にいくので注意)

肝はselfとsuperを使いこなすことかと
このあたりリファレンスに書いてあるんで落ち着いて読んでもらえばいいけど

インプリについては、Trait = Interface(Java)の理解でそれほど差し支えない気もするけど
(定数は同じ階層のmoduleに移す)
AssosiatedTypeがあるように"Traitはコンパイル時に解決できる"ものってのを
意識してればその内に腑に落ちるんじゃないかな

ただこんなこと言うと
「RustのTraitは厳密なtraitじゃない論争」(Wikipedia参照)が始まっちゃうかもしれないので
ゆるく受け流してほしいところ

122 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 12:36:48.84 ID:KX350+9ka.net]
extern/use周りをrefineする話ってどうなった?



123 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 13:07:18.00 ID:Yj33g/c2M.net]
>>122
一応2018の予定には入ってるけどまだ作業中じゃない?
https://rust-lang-nursery.github.io/edition-guide/2018/transitioning/modules/path-clarity.html

124 名前:デフォルトの名無しさん [2018/05/28(月) 14:35:19.27 ID:N9/pBFPWH.net]
チュートリアルの和訳のところを読んでいるけど
誰が訳したんだろう。。。

125 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 15:45:35.01 ID:AY4+K2YC0.net]
extern crateは、includeとかload libraryぐらいの意味だと思えばいいと思うが、
「え、それ、Cargo.tomlにもう書いたやん」って思うのは当然の感覚だな

126 名前:デフォルトの名無しさん [2018/05/28(月) 15:47:39.28 ID:N9/pBFPWH.net]
しばらくしたら言語仕様変わりそうだなあこれ
勉強していくべきなのかどうか迷う

127 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 16:38:01.86 ID:WepGeDn70.net]
仕様の改定はc++のようにコンパイラのリリースとは別に2〜3年毎に定めることになってる
将来のコンパイラでも古い仕様を選択して使えるはず

128 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 17:33:13.35 ID:dK7cJGyKa.net]
どんな言語でも利用者多ければライブラリーのトレンド変わっていって学び直しはあるし
言語仕様の変更だけ特別視する理由が分からん

129 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 18:01:33.70 ID:b/gKZOsn0.net]
ver1.0になったし、firefoxに200kstepのソースがあるから始めるなら今でしょ

130 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 21:33:55.19 ID:hIMCbSeD0.net]
ruby1.8から1.9とか
python2から3の変更とか
嫌じゃん

言語もライブラリも混在してぐちゃぐちゃ

131 名前: mailto:sage [2018/05/28(月) 22:15:42.81 ID:dVAXJXVu0.net]
>>124
和訳は最新に追いついていないと思います、公式英文を確認したほうがいい

132 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 23:47:10.84 ID:cVR0FGXk0.net]
Rustの場合仕様変更の影響を受ける記述はコンパイラがwarning(とsuggestion)出してくれるみたいだし
むしろライブラリのアップデートより楽なんじゃないかな



133 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 08:16:58.71 ID:dnBokp3T0.net]
やりたいことをするのに1日使って50%しかできなかった

自分には無理だこの言語

134 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 08:53:39.83 ID:GEfewF+tM.net]
50%できればすごいって

135 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 07:30:04.93 ID:gpIIxUGF0.net]
1.26の新機能自分のcrateにもう入れた?

136 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 19:39:19.80 ID:RsiXZK4kM.net]
土台?

137 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 19:45:35.17 ID:woYxJr3K0.net]
ここにまともなRustユーザいないのは年寄りしかいないからなのかなぁ

138 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 00:28:40.74 ID:U7oXkFlj0.net]
slackかtwitterでコミュニケーションとれるので5chへ書き込みたい事情があまりない

139 名前: mailto:sage [2018/06/12(火) 00:34:57.69 ID:QT2PgMnm0.net]
>>138
おすすめのハッシュタグはなんでしょうか?

140 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 08:25:35.49 ID:ESFTg/QrM.net]
そう言われてみると確かにない。

141 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 09:41:15.21 ID:Sk+2Pu3l0.net]
もっとメジャーになってslackが荒れて来たらここもワンちゃん

142 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 12:05:43.89 ID:QKuSZN5/a.net]
ハッシュタグというより界隈の人間フォローしてる



143 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 19:39:13.56 ID:twlm3/XD0.net]
slackで発言できないアンチにしか存在価値がないのかぁ

144 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 21:30:56.05 ID:d/RZ9PcJ0.net]
slackのどこで喋ってるの?さ






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

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

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