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


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

プログラミング言語 Rust



1 名前:デフォルトの名無しさん [2012/01/25(水) 20:05:49.96 .net]
Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。

www.rust-lang.org/

110 名前:デフォルトの名無しさん mailto:sage [2014/02/21(金) 19:40:13.77 .net]
rust速いらしいけどgoに比べて並列化し辛いから結局goのが速いって聞いてんですけどそんな感じなの?

111 名前:デフォルトの名無しさん mailto:sage [2014/02/21(金) 22:04:36.27 .net]
シングルスレッド遅い言語はどんなに並列化しても無駄

112 名前:デフォルトの名無しさん mailto:sage [2014/02/22(土) 04:50:05.65 .net]
>>110
その手の、Erlangっぽい並列処理は、ライブラリレベルで実装可能。
Scala/JavaのAkkaがその実例。

113 名前:デフォルトの名無しさん mailto:sage [2014/03/17(月) 11:54:37.97 ID:JigeyuIH.net]
破壊的変更が毎週たくさんあるね

114 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 07:00:36.43 ID:aNkl6/ok.net]
次期バージョンは0.10かね

115 名前:デフォルトの名無しさん [2014/04/14(月) 02:41:46.21 ID:AgBD4gFn.net]
v0.10 is coming.
www.rust-lang.org/
https://github.com/mozilla/rust/blob/master/RELEASES.txt

・@ ポインタを remove
・do キーワードを remove
・etc...

116 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 09:58:53.67 ID:Fj6ednoX.net]
なんで1.0が出てから始めないん

117 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 22:39:55.58 ID:nLviVS/4.net]
DとかGoとかポストC気取ってるくせにCを駆逐する気がない言語より頑張って欲しい

118 名前:デフォルトの名無しさん mailto:sage [2014/06/12(木) 00:32:07.72 ID:e6x9cJlC.net]
頑張って欲しいけど、1.0 が遅いから Swift に浮気しちゃうぜ



119 名前:デフォルトの名無しさん mailto:sage [2014/07/06(日) 20:45:53.22 ID:8W/9eoDc.net]
rustでRAIIはどう実現したら良いのでしょうか

120 名前:デフォルトの名無しさん [2014/07/09(水) 09:47:39.31 ID:ICY9ltLE.net]
v0.11 is coming.
www.rust-lang.org/
https://github.com/mozilla/rust/blob/master/RELEASES.txt

・構造体のフィールドがデフォルトで private に
・private enum 変数が不許可に
・priv キーワードを remove
・`use foo, bar, baz;` シンタックスが remove
・……

121 名前:デフォルトの名無しさん mailto:sage [2014/07/26(土) 21:14:51.31 ID:fwCKMr/Y.net]
Rust言語の明日は何処だ

122 名前:デフォルトの名無しさん mailto:sage [2014/08/08(金) 02:51:15.07 ID:lSQPAJbI.net]
C++を駆逐するなら大歓迎だ

123 名前:デフォルトの名無しさん [2014/08/10(日) 14:07:48.02 ID:FUhgKhzg.net]
>>122
俺も同意。
Rust頑張れ。

124 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 15:13:03.34 ID:rgbQez8I.net]
それならDとGoに勝たないといけない
おれはRustに頑張って欲しいから早く1.0だして欲しいけど、もう手遅れな気はしてる

125 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 15:30:16.69 ID:AMGvL8Wx.net]
DはともかくGoは厳しかろうなあ

126 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 16:15:08.44 ID:559thib6.net]
GoではC++の駆逐はできないと思う。
たとえば、goでOSを作れるかというとそうではない

127 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 18:47:02.34 ID:mPHamUGI.net]
C++の代わりになるのはCで作られたlibやDLLを直接呼べなくてはならないが
Dはヘッダーファイル作ればできるけど
Goは問題外だった。
rustってどうやんの?

128 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 20:21:22.22 ID:7WLKXo+Z.net]
extern "C" とかつけて関数宣言すると、Cの関数が呼び出せる。
呼び出し時の余計なオーバーヘッドとかは今はなくなってるはず



129 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 23:54:09.61 ID:pueQuLPm.net]
次のC++17までに実用になってなかったら逆に駆逐されるな

130 名前:デフォルトの名無しさん mailto:sage [2014/08/13(水) 16:43:46.11 ID:450ISMpY.net]
>>128
おお、良いぞ。そんな感じで十分だ。
C++は規格化に関わってる連中が(ここだけの話)キモいので駆逐してほしい

131 名前:デフォルトの名無しさん mailto:sage [2014/08/20(水) 17:02:00.56 ID:cYiGvIKn.net]
C++で中間コード吐き出すコンパイラ作ったほうが喜ばれる

132 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 09:15:58.87 ID:y1+4ScdQ.net]
Road to Rust 1.0 blog.rust-lang.org/2014/09/15/Rust-1.0.html

133 名前:デフォルトの名無しさん mailto:sage [2014/09/19(金) 01:19:00.42 ID:oDXr8xMe.net]
はよ 1.0 になれ

134 名前:デフォルトの名無しさん [2014/09/25(木) 22:01:45.45 ID:/UWIY2F4.net]
Mozillaは永遠にベータ版しか出さん連中だから無理

135 名前:デフォルトの名無しさん [2014/10/02(木) 23:11:57.53 ID:C3h6KQmN6]
これ、C風の見かけのために curly braces { } 使ってるだけで、中身は露骨にML系言語だよね。
もっとML寄りの記法で書けるようにしてほしいなあ。

136 名前:デフォルトの名無しさん mailto:sage [2014/10/10(金) 08:24:39.99 ID:iwp7TUt6.net]
[rust-dev] Rust 0.12.0 released
https://mail.mozilla.org/pipermail/rust-dev/2014-October/011267.html

137 名前:デフォルトの名無しさん mailto:sage [2014/10/10(金) 12:32:52.94 ID:tQ87SuYa.net]
1.0コネー

138 名前:デフォルトの名無しさん mailto:sage [2014/10/12(日) 00:12:55.83 ID:wVymFFZ9.net]
だいぶ見ないうちにもはや別言語になっとる。
es6みたいにどうせ新機能使ったら互換性なくなるのにbreak the webとか抜かして右往左往し続けて
仕様がコロコロ変更されるより元から破壊的変更上等だけどバージョンが安定しないな。



139 名前:デフォルトの名無しさん mailto:sage [2014/10/12(日) 23:09:08.17 ID:fD2p7D4P.net]
moveって名前の関数つくれないんだ?

140 名前:デフォルトの名無しさん mailto:sage [2014/10/13(月) 01:56:12.89 ID:NYVg+AhM.net]
moveはキーワードだから、使えない

141 名前:デフォルトの名無しさん [2014/10/21(火) 13:03:52.26 ID:4Y1dgKOT.net]
仕様が安定するのはいつですか

142 名前:デフォルトの名無しさん mailto:sage [2014/10/29(水) 00:30:10.05 ID:uvk5/wlk.net]
&strとstringやっぱめんどくさい。
せめてリテラルの中に変数値埋め込むような書式が欲しいけどそれだとそもそも&strにならない。
もう文字列リテラルはstringにしてくれよ

143 名前:デフォルトの名無しさん mailto:sage [2014/10/29(水) 08:02:03.12 ID:PJ7XKhhs.net]
文字列リテラル書く度にメモリの動的確保するのは、
さすがに発狂ものだろ
slicing_syntax使えば、.as_slice()が[]になるし、それで我慢してくれ

144 名前:デフォルトの名無しさん mailto:sage [2014/10/29(水) 08:43:24.44 ID:Seh2VPHk.net]
stringといえばcoreutilsのコード読んでて思ったんですが
https://github.com/uutils/coreutils/blob/master/src/cat/cat.rs

> let show_nonprint = matches.opts_present(["A".to_string(), "e".to_string(), "t".to_string(), "v".to_string()]);

こういういちいちto_string()してるコードもうちょっと上手く書けませんかね

145 名前:デフォルトの名無しさん mailto:sage [2014/10/29(水) 21:06:45.55 ID:GrpYtfpz.net]
これの解決方法を教えてください
melpon.org/wandbox/permlink/Ce549z8Z26NYtfpj

146 名前:デフォルトの名無しさん mailto:sage [2014/12/13(土) 09:03:40.20 ID:BbKnnj5O.net]
Rust 1.0: Scheduling the trains
blog.rust-lang.org/2014/12/12/1.0-Timeline.html

はよ

147 名前:デフォルトの名無しさん mailto:sage [2015/01/05(月) 00:17:31.79 ID:62ndYAiq.net]
公式のGuideに従って Hello, world! コンパイルしたら600kBくらいのができたんだけど、これ何が入ってるの?
たしかGoもこんなだったっけw

148 名前:デフォルトの名無しさん mailto:sage [2015/01/05(月) 23:04:03.12 ID:XrgG4/ce.net]
>>147
標準ライブラリが静的リンクされてる。
jemallocとかサイズでかいらしい。
-C lto つけてリンク時最適化有効にすると若干サイズ縮むはず



149 名前:デフォルトの名無しさん mailto:sage [2015/01/09(金) 16:50:57.81 ID:1ny7jOif.net]
ガイドページの右下に出てる
Rust 1.0.0-nightly
ea6f65c5f
って何?

150 名前:デフォルトの名無しさん mailto:sage [2015/01/09(金) 21:31:25.08 ID:ecLcmkaN.net]
ドキュメントのバージョンだよ。

151 名前:デフォルトの名無しさん mailto:sage [2015/01/10(土) 09:03:15.68 ID:qZSZ4EVX.net]
1.0のalpha来てた
もうすぐ安定するんだと思うとなんだか感動する

152 名前:デフォルトの名無しさん mailto:sage [2015/01/10(土) 09:25:29.41 ID:aqSa96PR.net]
楽しみだね。

153 名前:デフォルトの名無しさん mailto:sage [2015/01/10(土) 10:50:52.48 ID:VYrUioRX.net]
Guessing Gameまで来たら
↓が変な感じがする。値を返すかcontinueで離脱。例外みたいなノリなんだろうか

let num = match input_num {
Some(num) => num,
None => {
println!("Please input a number!");
continue;
}
};

154 名前:デフォルトの名無しさん mailto:sage [2015/01/12(月) 07:44:13.71 ID:V9nd0xt7.net]
見てきたけど
uint に変換できない場合
None が返って来て、
もう一度 loop の最初からやり直し
なだけじゃないか?
Option で返って来るのに慣れてないのかな?

例外については下記が日本語訳(ただし、前のverなので文法が違うかもしれない)
ttp://qiita.com/kondei/items/c7175ed278bb4fbd4d16

155 名前:153 mailto:sage [2015/01/12(月) 14:05:00.11 ID:uQy2oTpW.net]
ああなるほど、None(と言うか() のことかな?)を返してからcontinue動作したと考えればいいのか

156 名前:デフォルトの名無しさん mailto:sage [2015/01/12(月) 14:14:00.52 ID:smRTP4TA.net]
そこ俺も違和感あった
HaskellやOCamlにおけるパターンマッチは条件分岐というよりも値の分解の意味合いがつよいと思うのだけど, Rustでは条件分岐としての側面が強いのかなと感じた
要するにif文ってことだよね

157 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 00:20:23.58 ID:iAaaaZAE.net]
大域脱出と見ればそんなに違和感ないと思う
bookに記載はされてないけど縦棒で複数のパターンに対応させることもできるのな
match foo {
Bar | Baz => do_X,
Huga => do_Y
_ => do_Other
}
みたいなのもいけた。無かったら嫌だなと思ってたがreferenceにはあった

158 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 21:46:02.73 ID:oe8+YAa0.net]
>>156
ガチの関数型とはなんか違うfeelingと言うか空気感を感じる



159 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 22:27:52.83 ID:QfRKSulC.net]
関数からIteratorを返す方法が分かりません
具体的には型に何書いて良いか分からない

160 名前:デフォルトの名無しさん mailto:sage [2015/01/14(水) 00:27:11.46 ID:e9uoW40m.net]
>>158
Rustの良さの一つではあると思う
メモリモデルの問題で普通の関数型プログラミング言語と全く同じようには出来ない中で、なるべく関数型の良さを取り入れようという結果なんだろうな

161 名前:デフォルトの名無しさん mailto:sage [2015/01/14(水) 00:48:27.71 ID:MazRL5ri.net]
>>159
関数の中身によるけど、
戻り値書かなかった場合のコンパイルエラーで出てる型名コピペすればたぶんいけると思う

162 名前:デフォルトの名無しさん mailto:sage [2015/01/15(木) 20:50:25.52 ID:b84/qUeG.net]
言語が固まったらREPLの開発も再開するよね

163 名前:デフォルトの名無しさん mailto:sage [2015/01/15(木) 21:34:03.91 ID:E2BgZv7k.net]
RustでREPLはめんどくさそうだな
寿命とか
でっかいひとつのスコープって考えたら別にむずかしくはないのな

164 名前:デフォルトの名無しさん mailto:sage [2015/01/16(金) 14:15:52.84 ID:9+9TOoEF.net]
1.0.0-alpha をビルドしてるんだけど
configure に --libdir=/usr/lib64 を指定すると
lib.rs がコンパイルエラーになってしまう
前からこんなんだったっけ・・・

165 名前:デフォルトの名無しさん mailto:sage [2015/01/16(金) 22:33:39.21 ID:KEq1J0ex.net]
ここ最近の怒涛の変更はヤバい

166 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 00:15:44.35 ID:Wxv5Etsa.net]
clayもそうだったけど、llvm使った言語のビルドってすげー時間かかるのな。ナイトリービルド落とした方がええわ。

167 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 02:06:27.12 ID:CWvWtJ6X.net]
クロージャ周りが変更されまくってて全然わからん

168 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 18:17:59.12 ID:H+D/soOr.net]
そろそろ試してみようと思ったらまだそんな感じなの?



169 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 18:38:22.05 ID:rzZFM78t.net]
これから構文の変更は極力減らすらしいし、1.0がリリースされるまでのあと2〜3ヶ月は詰めの時期だろう
ドキュメント周りは絶賛崩壊中。Rust by Exampleとか全然動かん(Issueは立ってるけど)
まあ検索しても古いブログとか引っかかりまくるからな―
なんかあったらGitHub該当レポをいちいち見に行くくらいのことをしないと勉強するのは厳しい

170 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 18:40:22.92 ID:CWvWtJ6X.net]
構文の変更はなくてもAPIの変更はあったりするんだろうか

171 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 19:02:31.26 ID:P4fG3Fn9.net]
このスレ立ったときから安定したら使ってみようと思ってたけど
もう少しらしいね

172 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 19:41:57.99 ID:Om8PoyqQ.net]
ベータのリリースサイクルでライブラリの安定化やるから、
APIはまだまだ変更されるはず

173 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 20:40:08.53 ID:H+D/soOr.net]
ベータ出てからも長そうだな...

174 名前:デフォルトの名無しさん mailto:sage [2015/01/19(月) 03:43:45.49 ID:b8H1tohZ.net]
1. 全ての値、変数はそれが定義されたスコープ内で死ぬ(読み書きできなくなる)
2. ある値を殺さずスコープの外に出すには、死ぬ前に外の変数に入れるしかない
3. ただし、参照を外に出すことはできない

lifetimeの原則ってこんなもんだよね?これはまだ分かるけど、ownershipはも少し理解が必要。
マルチスレッドを学ぶときにきっと理解できると信じてる。

175 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 02:47:53.78 ID:CAQhwwqz.net]
fnで定義される関数とクロージャって区別されてるのか。fnで定義できる関数は環境を持たないクロージャとして扱うことができるけど、逆は無理なのな。
fn map<S,T> (x:Vec<S>, f:fn(S) -> T) -> Vec<T> { ... }
っていう高階関数はfnで定義される関数しか受け付けないが、
fn map<S,T,F:Fn(&S) -> T> (x:Vec<S>, f:F) -> Vec<T> { ... }
は関数もクロージャも通す。

クロージャの定義を見ればコンパイル時に環境を持たないで済むか分かると思うんだけどなあ
関数 ∈ クロージャみたいな関係なんだから、関数で済むなら関数にして欲しい

176 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 07:57:01.37 ID:WTvBD7gs.net]
unboxed closureならほぼ関数みたいに使えると思うけど。やりたいことは、boxingが必要なケース?

177 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 08:02:49.45 ID:WTvBD7gs.net]
よくわからん事を言ってしまった。
そもそも、クロージャとして扱うってどういう意味で言っている?
rustではクロージャ「型」というものは最近なくなってしまって、
ただFnを実装した型が関数のように呼び出すことが出来るだけという認識。
Fnを実装したある型が関数として定義されているか、
クロージャの構文を使って定義されているかは、
渡される側からは意識する必要がない。

178 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 14:02:52.06 ID:CAQhwwqz.net]
>>177
クロージャとして扱うってのは>>175の二番目のmap<S,T,F:Fn(&S)->T>っていう高階関数は、
fn foo(...)で定義された関数を渡すことができるし、let baz = |&:| { ... }とかやって定義したクロージャを渡すこともできる。
>>175の一番目のmap<S,T>はfnで定義した関数は渡せるけど|&:| {...}は渡せない。
つまり、関数とクロージャは別物なんだけど、クロージャを受け取る高階関数は関数も受け取れる。
それを指して「クロージャを受け取れる高階関数は、普通の関数もクロージャとして扱う」っていう意味で言った。

referenceのfunction typeの項
doc.rust-lang.org/reference.html#function-types
にもあるとおり、関数の型はfn(args) -> retと書けるもので、traitの実装とかではない。
一方でクロージャはFnトレイトの実装。違いは環境を持つか否か。



179 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 18:02:24.49 ID:5OYX7sX+.net]
>>178
おそらくだけど、Rustの言語仕様で閉じる範囲に関しては、すべて区別せず Fn traitに統一したい意図があると思う。
関数型が残されているのはFFIの都合かと

180 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 20:43:45.16 ID:CAQhwwqz.net]
そうなの?関数内で関数を定義できるからある程度は使えるんだけどな。

ついでに質問なんだけど、Fn traitの記法Fn(s) -> tってのはこれ専用の記法なの?
それとも一般的な記法の一例?

181 名前:デフォルトの名無しさん mailto:sage [2015/01/21(水) 01:12:38.06 ID:YXeDnvLj.net]
Fn みたいな () -> を使う記法はいまのところFnとFnMutとFnOnce専用だったはず。
他にこの記法使えるとうれしい場面があるならば提案すれば使えるようになるかも。

そもそもこの記法採用されたきっかけというのが、
Fn(A. B) -> C を desugar した形式の Fn<(A, B), C> が書きにくいというのもあるけど、
Fn のdesugarした形式自体がまだfixできていないから、
ひとまずsugarだけ使えるようにして実体の表記は使えなくしようというものだったはず。

実際、Fnの戻り値型はAssociated typeで与えるようにしようとか、
Foo()-> Aの記法は Foo<Output=A> の意味にしようとか、いろいろ議論があるらしい。

当面は、RFCウォッチすると議論が追えると思う。

182 名前:デフォルトの名無しさん [2015/01/21(水) 09:15:31.70 ID:mE4mMlsp.net]
トップレベルで型注釈を強制するのはひとつの見識だとは思うんだが、
型の表記がもう少しスッキリしたマトモなものじゃないと面倒臭すぎる。
なんでそういうところはMLやHaskellを見習わなかったのか……

183 名前:デフォルトの名無しさん mailto:sage [2015/01/21(水) 11:29:22.51 ID:4FCeMM5/.net]
>>182
本当だねえ。関数引数リストの中がゴミゴミしい

184 名前:デフォルトの名無しさん mailto:sage [2015/01/22(木) 01:22:08.93 ID:KmZyTX6h.net]
ttps://github.com/rust-lang/rust/issues/20797?#issuecomment-69947098
associated typesを使っているtraitが拡張できん…

185 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 05:05:02.45 ID:47J/10kQ.net]
>>184の問題の再現コードは、
trait DeclaredTrait {
type Type;
}
impl DeclaredTrait for i32 {
type Type = i32;
}
struct Struct<B: DeclaredTrait> {
b: B,
b1: B::Type,
}
とあり、 Struct { b: 0, b1: 0}などとするとICEになるが、色々試した結果、Structを少し弄って
struct Struct<T, B: DeclaredTrait<Type=T>> { ...
とすれば回避できることが分かった。やったと小躍りしていたらfixされた。Oh...

186 名前:デフォルトの名無しさん mailto:sage [2015/01/29(木) 19:53:46.66 ID:zNgdEinm.net]
arthurtw.github.io/2014/11/30/rust-borrow-lifetimes.html
borrowingについてはbookより良い説明になってる。

stackoverflow.com/questions/22188088/what-does-a-scoped-lifetime-in-rust-actually-mean
この解答はかなりlifetimeについて分かりやすかった。

lifetimeとsubtypingの類似性をまとめようと思ったが力尽きた。
1つの事柄を説明しようとすると別の関連項目も入れた方がいいなとかやってると膨大になる。

187 名前:デフォルトの名無しさん mailto:sage [2015/02/04(水) 22:01:24.98 ID:TC60WqWu.net]
rustはじめました
バカなんですけど教えてください
fn main() {
let mut a = &1is;
let mut b = &2is;
a = b;
}
b = a だと平気なのに a = b だと叱られます。なぜですか

188 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 01:26:26.56 ID:dGetvNcg.net]
先に宣言した方がlifetimeが長くなるルールだから?



189 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 01:47:21.88 ID:u4P5BLYw.net]
nightlyなら通るよ>>187

190 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 20:57:01.65 ID:xsa081YG.net]
お二方どうも

>>188
どこで寿命尽きるのかlifetimeムズカシイです

>>189
通るのですか
しかしエラー出ます rustc 1.0.0-nightly (eaf4c5c78 2015-02-02 15:04:54 +0000)
githubのをビルドしないとダメでしょうか
面倒なのでブック読みながらバイナリの更新待ちます

191 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 00:07:57.08 ID:ZZvCiYpX.net]
今なら2015-02-04のバイナリ落ちてくるよ

192 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 01:45:16.44 ID:f5aiPF8n.net]
うーん。変わらずエラーが出ます rustc 1.0.0-nightly (ba2f13ef0 2015-02-04 20:03:55 +0000)
本来>187はコンパイル通るものですか

193 名前:192 mailto:sage [2015/02/06(金) 01:49:34.64 ID:f5aiPF8n.net]
エラーこんな感じで
src/main.rs:3:14: 3:17 error: borrowed value does not live long enough
src/main.rs:3 let mut b = &2is;
                 ^~~
src/main.rs:2:17: 5:2 note: reference must be valid for the block suffix following statement 0 at 2:16...
src/main.rs:2 let mut a = &1is;
src/main.rs:3 let mut b = &2is;
src/main.rs:4 a = b;
src/main.rs:5 }
src/main.rs:3:17: 5:2 note: ...but borrowed value is only valid for the block suffix following statement 1 at 3:16
src/main.rs:3 let mut b = &2is;
src/main.rs:4 a = b;
src/main.rs:5 }

194 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 02:10:23.34 ID:9alBoo2L.net]
playpenでも転けるし駄目っぽい

195 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 17:39:55.66 ID:uj3RHvbm.net]
nightlyで通ると言ってた者だが、1月24日のは通ったが、今日2月6日では通らなくなってた。

196 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 23:25:09.25 ID:gZSM6axtP]
やっぱりlifetimeの長い短いとちゃうかなぁ。
>let mut a = &1is;
>let mut b = &2is;
aの型は&'i isize
bの型は&'j isize
だとするとlifetimeの長さはi > jであるからaはlifetime i以上のisizeへの参照を要求する。
bのlifetimeはjであるからnot live long enoughなんじゃないかなぁ。

197 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 23:36:12.02 ID:gZSM6axtP]
うーん、でも
fn print_type_of<T>(_: &T) -> () {
    let type_name =
        unsafe {
            (*std::intrinsics::get_tydesc::<T>()).name
        };
    println!("{}", type_name);
}

fn main() {
    let mut a = &1is;
    let mut b = &2is;
    print_type_of(&a);
    print_type_of(&b);
}
の出力は
&'static isize
&'static isize
やなぁ。

198 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 01:46:20.54 ID:Gp97gMW3.net]
やっぱりlifetimeの長い短いとちゃうかなぁ。
>let mut a = &amp;1is;
>let mut b = &amp;2is;
aの型は&amp;'i isize
bの型は&amp;'j isize
だとするとlifetimeの長さはi > jであるからaはlifetime i以上のisizeへの参照を要求する。
bのlifetimeはjであるからnot live long enoughなんじゃないかなぁ。



199 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 01:46:51.82 ID:Gp97gMW3.net]
うーん、でも
fn print_type_of<T>(_: &T) -> () {
let type_name =
unsafe {
(*std::intrinsics::get_tydesc::<T>()).name
};
println!("{}", type_name);
}

fn main() {
let mut a = &1is;
let mut b = &2is;
print_type_of(&a);
print_type_of(&b);
}
の出力は
&'static isize
&'static isize
やなぁ。

200 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 08:13:43.05 ID:iwrmCGgo.net]
print_type_of ってデバッグでしょっちゅう使うから、標準ライブラリに入ってると良いのに

201 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 11:09:20.93 ID:cThHTNUW.net]
get_tydescでlifetimeってstatic以外も出せるの?

fn main() {
let x = &1;
print_type_of(&x); // &'static i32
{
let k = &3;
print_type_of(&k); // &'static i32
}
}

202 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 13:33:02.38 ID:cThHTNUW.net]
https://github.com/rust-lang/rust/pull/21657
https://github.com/rust-lang/rust/pull/21022
何言ってるか分からん。誰か解説してください。

203 名前:デフォルトの名無しさん [2015/02/21(土) 07:04:27.61 ID:Olg1CcTP.net]
1.0.0 あるふぁ2 来た

We’ve managed to land almost all of the features previously expected for this cycle.
The big headline here is that all major API revisions are finished: path and IO reform have landed.
At this point, all modules shipping for 1.0 are in what we expect to be their final form, modulo minor tweaks during the alpha2 cycle. See the previous post for more details.

blog.rust-lang.org/2015/02/20/Rust-1.0-alpha2.html

ってことは主な標準ライブラリのAPIも安定するってことか?
安定バージョン出たら使おうと思ってたからそろそろ本格的に勉強しよう

204 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 07:08:43.49 ID:Olg1CcTP.net]
rust 日本で人気ないのなんでだろ
hackernews とかでは話題になるのに

205 名前:デフォルトの名無しさん [2015/02/21(土) 07:54:16.64 ID:r4ISt4ZW.net]
なってねーよ
Rustユーザーの声がでかいだけ
Githubのトレンド見ろよ
てかいつ1.0になるんだよ
コンパイルクソ遅せーよ

206 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 08:28:43.29 ID:R5TBrCid.net]
今見たらハッカーニュースで話題になっててワロタ

207 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 11:27:04.19 ID:Fus77TES.net]
日本人なんでいつも出遅れじゃん

半島人や大陸人ではないので念のためw

208 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 11:37:56.64 ID:Fus77TES.net]
RELEASES.md
Version 1.0.0-alpha.2 (February 2015)
ttps://github.com/rust-lang/rust/blob/master/RELEASES.md#version-100-alpha2-february-2015

本題と離れたこの辺が好き→Rust is tested against a LALR grammar



209 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 18:56:18.12 ID:NoRQyCne.net]
日本はシステム寄り言語はあまり盛り上がらない印象
フレームワークでこんなんできた、とかそういうのばっか

210 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 19:05:24.66 ID:XLU71/kI.net]
そのフレームワークにも乗り遅れてるけどな






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

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

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