X



Rust Part7
■ このスレッドは過去ログ倉庫に格納されています
0143デフォルトの名無しさん
垢版 |
2019/08/10(土) 18:12:12.30ID:0AyH8q+k
>>141
> 単にポインタ渡してるだけなのに
> ポインタを値渡してるだけなのに
> 「ポインタ渡し」だとか「参照渡し」だとか言っちゃう

お前がまず混乱してね?
0144デフォルトの名無しさん
垢版 |
2019/08/10(土) 18:38:36.22ID:EB3chQuK
×単にポインタ渡してるだけなのに
○単にポインタを渡してるだけなのに

失礼、こう書いたほうが良かったねこの場合
0145デフォルトの名無しさん
垢版 |
2019/08/10(土) 18:39:45.26ID:EB3chQuK
×ポインタを値渡してるだけなのに
○ポインタを値渡ししてるだけなのに

こっちは完全なるタイプミス
0146デフォルトの名無しさん
垢版 |
2019/08/10(土) 18:41:40.47ID:SA5rOGgq
佐渡さんと書いて、サドさんと読む人と、サワタリさんと読む人がいるから、紛らわしい!
0153デフォルトの名無しさん
垢版 |
2019/08/12(月) 07:11:17.23ID:SKKCu+1X
RustとかC/C++は機械語までコンパイルするから速いんじゃなくて無駄なことをしないから速いのでJITとかそういう問題ではない
0154デフォルトの名無しさん
垢版 |
2019/08/12(月) 09:05:01.58ID:QXujyVaw
JITコンパイルで性的コンパイル結果より速くなるというのは都市伝説
JITのしくみを考えたらワカル

理論上は分岐の実行時統計をとって最適化することによりローカルループがありえないぐらい爆速になって
JITコンパイラ大勝利!と言うことも考えられないではないが統計をとるオーバーヘッドが生じるし
そこまでやっているJITコンパイラは商用のにはないはず
0157デフォルトの名無しさん
垢版 |
2019/08/13(火) 08:48:40.97ID:fZHFtPHB
僕の女の子とのリンカーはどこ?
0158デフォルトの名無しさん
垢版 |
2019/08/13(火) 09:05:59.58ID:6zR84Szz
優しいリンカー
0159デフォルトの名無しさん
垢版 |
2019/08/16(金) 18:52:17.34ID:0C07dzAa
Rust学び始めたけど難しすぎる...
慣れるのにどれくらいかかるだろうか
ちなc/c++経験ほとんどなし
関数型言語は少しだけ分かるっていう程度

手を出すのは無謀?
0160デフォルトの名無しさん
垢版 |
2019/08/16(金) 19:38:11.01ID:T3AL3pts
なにを作ろうとしてるのかによるよ
わたしは二ヶ月くらいかかったかな
0162デフォルトの名無しさん
垢版 |
2019/08/16(金) 23:18:30.16ID:T3AL3pts
まだstableじゃないからなんとも
tokio::netとかはasync/awaitでサンプル出してたりするけどどうかな
0163デフォルトの名無しさん
垢版 |
2019/08/16(金) 23:43:23.26ID:wNXKziRk
>>159
substructural type systemとregionの前提知識がないならコンパイラに怒られるだけ時間の無駄。
先に必要な知識つけてから。

>>161
stable待つよろし。
0164デフォルトの名無しさん
垢版 |
2019/08/16(金) 23:44:14.39ID:thOVjQYW
cくらいはやっとらんとなんでこんな事してるんだって思うだけだろ。
メモリイメージがないならrustなんか使う意味がない。
0165デフォルトの名無しさん
垢版 |
2019/08/17(土) 06:44:20.91ID:7ZAIflK1
そんなに大仰なことかなあ?
書いてればそのうち分かるっしょ
0166デフォルトの名無しさん
垢版 |
2019/08/17(土) 07:11:11.72ID:vMO96NW+
メモリイメージちゃんとしてるならCでいいだろ
0167デフォルトの名無しさん
垢版 |
2019/08/17(土) 09:56:37.40ID:wqyoFpBF
それな
0168デフォルトの名無しさん
垢版 |
2019/08/17(土) 10:00:51.09ID:BwITc4Uh
>>159
C/C++やってからでも遅くない

っていうかC/C++を先にやった方が近道かも知れん
0169デフォルトの名無しさん
垢版 |
2019/08/17(土) 10:46:08.44ID:9n/jDoCG
寧ろ関数型プログラミングに慣れ親しんだ人ならimmutableなオブジェクトだけでプログラミングしてしまい、
Rustが何も言わなかったりして…
0170デフォルトの名無しさん
垢版 |
2019/08/17(土) 10:51:56.69ID:0Qq/TjEN
>>160
2ヶ月ですかー
用途としてはとりあえず簡単なCLIツールを考えています

>>168
c++はともかくcはちゃんとやっておいたほうがいいですかね

「低レイヤを知りたい人のためのCコンパイラ作成入門」を読んだのでメモリイメージ的なことは最低限は分かるかも

rubyとかpythonとかからrust始めた人もいるみたいだし気合入れて頑張ってみますか
0172デフォルトの名無しさん
垢版 |
2019/08/17(土) 12:01:03.69ID:ZxqGKdv4
なんでこんなめんどくさいことやってんだ
というのを理解するにはC/C++の知識があると早い
0174デフォルトの名無しさん
垢版 |
2019/08/17(土) 13:26:05.40ID:ON6K/mb3
苦しめられたほうがラクなんよね
一見苦しい縛りの結果、整理された構造という一粒の宝石を残してくれる
0175デフォルトの名無しさん
垢版 |
2019/08/18(日) 13:26:59.04ID:j9EKYeL3
お邪魔します
エディタを紹介してもらえませんか?

The Rust Programming Language を読みながら自習しています
第12章 Refactoring to Improve Modularity and Error Handling の最後の節
Splitting Code into a Library Crate まできたのですが
( https://doc.rust-lang.org/book/ch12-03-improving-error-handling-and-modularity.html#splitting-code-into-a-library-crate )
Listing 12-14 のように src/main.rs を変更すると
エディタが minigrep なんて知らんと文句を言いはじめました
これでは Config や run を補完で出してくれません

mod lib;
use lib as minigrep

を入れれば補完してくれますが、cargo build が通りません

この状況に対応しているエディタを紹介してくださると大変助かります
0178デフォルトの名無しさん
垢版 |
2019/08/18(日) 17:36:07.73ID:j9EKYeL3
助かります
ありがとう
0180デフォルトの名無しさん
垢版 |
2019/08/20(火) 15:27:32.97ID:hKY2TKrp
RustのArcとかBoxとか複数組み合わせてちゃんと動くってイメージが湧かないんだけどそんなもん?
0185デフォルトの名無しさん
垢版 |
2019/08/21(水) 22:17:56.76ID:zqKd/4GT
嘘乙。
違うというなら証拠を出せ。
0187デフォルトの名無しさん
垢版 |
2019/08/26(月) 20:55:57.18ID:hNXwMePN
https://play.rust-lang.org/?version=stable&;mode=debug&edition=2018&gist=8c44bed658726ada0deff031799664b7
1. std::env::current_exe()で実行ファイルのフルパスを得る
2. file_name()でファイル名だけにする
3. to_str()で&strにする
4. 途中でErrやNoneが返ってきた場合はデフォルトの値"foo"を使う

ということをやりたいのですが、エラーでビルドできません。
どのように書けばいいでしょうか?
0188デフォルトの名無しさん
垢版 |
2019/08/26(月) 21:16:34.03ID:e+wL38/M
std::env::current_exe() は PathBuf の"値"を返す
PathBuf::file_name() は PathBuf の中身の部分的な参照を返す

PathBuf::file_name() で生成される &OsStr を参照から値に変換するか、
std::env::current_exe() で生成されるPathBufを変数に束縛して所有権取らせてから、改めて参照を取得するかしないとダメ
0190デフォルトの名無しさん
垢版 |
2019/08/29(木) 18:47:18.36ID:DitGoMrU
>>27の元ネタだが
We need a safer systems programming language
ttps://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/
Why Rust for safe systems programming
ttps://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/
あたりを読むとあっちの会社はホント合理的だなと痛感する。C/C++を用いた安全な大規模システムの開発はムリゲーとし
同業他社の方針やツールを認め導入してしまう。日本の大手システム屋にこういう事を出来るところってあるんだろうか
0191デフォルトの名無しさん
垢版 |
2019/08/29(木) 20:39:56.79ID:7sVXLGAA
合理的ね。。
「戦うプログラマー」読む限りはそうは思えんが。
都合のいいとこだけ切り取ってるな。
むしろ無理やり言語使わせるとかもろSIerのやり口だろ。ばかすぎる。
0192デフォルトの名無しさん
垢版 |
2019/08/29(木) 21:33:28.37ID:Bp0lvm+/
闘うプログラマーと言えば当時からC++は魔境過ぎてヤベェみたいな記載があって笑った記憶ある。
0193デフォルトの名無しさん
垢版 |
2019/08/30(金) 12:23:15.14ID:Q74gFuRN
無理矢理使わせてるということは今後出てくるMSプロダクトは全部Rust製になるのか?
0195デフォルトの名無しさん
垢版 |
2019/08/30(金) 13:06:45.92ID:KMS/yKjh
JavaScript → TypeScript(型チェック) とか C++ → Rust(借用チェック) みたいな
用途・特性が似通った言語でより安全な方を使わせるってのは、単なるリスクマネジメントであって
SIerのナンデモJava事案とは違うと思う
0196デフォルトの名無しさん
垢版 |
2019/08/30(金) 15:21:18.59ID:cnXxJRuX
ポストC/C++の座にRustを据えるかどうかはともかくC/C+お払い箱は確定事項じゃね
つーかMSRCの記事の何処にも無理矢理使わせているなんて書いていないぞ?
0197デフォルトの名無しさん
垢版 |
2019/08/30(金) 15:28:58.11ID:GEn/r+mZ
Cは永遠に不滅です
C++は知らん
0198デフォルトの名無しさん
垢版 |
2019/08/30(金) 18:16:53.32ID:XBvkkCPm
Rust学び始めたけど噂通りむずい...
やりたいのはcli/tuiとかwebなので習得が無理そうだったら大人しくGoを使うことにする...(´・ω・`)
0203デフォルトの名無しさん
垢版 |
2019/08/31(土) 00:42:16.72ID:aUMbNTSE
ちゃんとしたmallocを作ること自体が難しいのであってCかRustかは難しさへは影響しない
0204デフォルトの名無しさん
垢版 |
2019/08/31(土) 15:15:02.18ID:j8rV2wO1
GCはクソ!だからRust最高!
とイキがってた奴がボローチェッカにボコボコにされてGCの良さを体感するまでが通過儀礼

どっかにドリルないですかね。>187みたいな問題がサラッと解けるようになりたい
0206デフォルトの名無しさん
垢版 |
2019/08/31(土) 20:44:28.04ID:BqsPi00f
>>187 みたいな感じのはリファレンス読んで関数やメソッドが参照返すのか値返すのか調べるだけ
0207デフォルトの名無しさん
垢版 |
2019/08/31(土) 21:13:02.78ID:apjBRhon
Rustはボローチェッカーのご機嫌取りが必要だが
GCある言語で性能が欲しいとか言い出すとGCのご機嫌取りが始まる
0209デフォルトの名無しさん
垢版 |
2019/08/31(土) 21:23:30.02ID:z8QlYv6E
所有権という概念をつかむのに苦労はしたけど、結果的にはプログラミングを簡単にしてくれていると思う
0211デフォルトの名無しさん
垢版 |
2019/09/01(日) 01:29:28.40ID:sYwYgS29
GCが糞っていうより
糞実装のGCが多過ぎて
大抵の人はGCで糞な思いをするから
GCが糞だと言う誤解というか評判になってるだけ
実際糞だが
0214デフォルトの名無しさん
垢版 |
2019/09/01(日) 10:19:52.00ID:ee5jndrf
それで >>187 はどう書くのが定番なの?
0215デフォルトの名無しさん
垢版 |
2019/09/01(日) 10:31:43.36ID:kCJZVLuH
続きを読むには会員登録が必要です
0219デフォルトの名無しさん
垢版 |
2019/09/01(日) 21:46:45.96ID:M++YO15h
同じ処理するにしてもRustだと複雑で冗長になるんだよな
もしかして糞言語なんじゃね?
0220デフォルトの名無しさん
垢版 |
2019/09/01(日) 21:54:48.86ID:yg5jHaTZ
>>218
できるよ
Resultを返すクロージャなら
0221デフォルトの名無しさん
垢版 |
2019/09/02(月) 00:09:16.32ID:O1/eX6ND
メモリ壊して苦労するか
パフォーマンスで苦労するか
コーディングで苦労するか
お好きな物をどうぞ
0223デフォルトの名無しさん
垢版 |
2019/09/02(月) 04:32:52.76ID:VKrglic+
>>219
+1
0224デフォルトの名無しさん
垢版 |
2019/09/02(月) 10:25:41.82ID:+zTucd5y
Bookを6章まで読んだ俺が >>187 を書いたらこうなった

https://play.rust-lang.org/?version=stable&;mode=debug&edition=2018&gist=dc60559b7af47298d305be80b340ee98

&strじゃなくてStringだけど
0226デフォルトの名無しさん
垢版 |
2019/09/02(月) 17:52:48.76ID:XClX12is
そういや、String(のclone)を一生懸命に避けてほんとに意味があるのか
コードを無駄に複雑化させただけなんじゃないかと悩む事が多い
0227デフォルトの名無しさん
垢版 |
2019/09/02(月) 21:13:54.24ID:c28qQK2V
執着する必要はないと思うけど、そんな複雑になる?
0228デフォルトの名無しさん
垢版 |
2019/09/02(月) 21:43:41.81ID:+zTucd5y
>>225 だとOsStringですけど、Stringにするにはどうすれば・・・?
0230デフォルトの名無しさん
垢版 |
2019/09/02(月) 22:48:02.88ID:+zTucd5y
なるほど
Derefが必要ない場合は直接書いちゃえばいけるのか
ありがとうございます
0232デフォルトの名無しさん
垢版 |
2019/09/02(月) 23:39:57.31ID:c28qQK2V
え、こんな短いコードで?
0233デフォルトの名無しさん
垢版 |
2019/09/03(火) 00:05:15.13ID:i5o7yZzz
なんでもかんでもメソッドチェーンにしないで適当なところで束縛した方がRustのコードは読みやすくなる
0234デフォルトの名無しさん
垢版 |
2019/09/03(火) 00:26:49.25ID:vCzpmz3O
それはあるな。シャドーイングできるから変数名に悩まないし、
単に長くなったところで再束縛すればいい。
0235デフォルトの名無しさん
垢版 |
2019/09/03(火) 11:07:53.94ID:CeNKL5mb
界隈の潮流では「部分的なc++化」というものがあり、Javaですらジェネリクス/テンプレートを取り入れた
rustもそうなる
0237デフォルトの名無しさん
垢版 |
2019/09/03(火) 16:01:22.65ID:BrE32zWk
ジェネリクスはあるよね
0238デフォルトの名無しさん
垢版 |
2019/09/03(火) 16:30:08.77ID:9SeNEnhh
関数型言語で優雅にやってたことを
マクロの延長みたいな形で泥臭く実装するのがC++化
0239デフォルトの名無しさん
垢版 |
2019/09/03(火) 18:15:35.61ID:sT1C29Io
そもそもC++化の潮流なんてあるか?
各言語それぞれ取り入れあってるとは思うが。
■ このスレッドは過去ログ倉庫に格納されています

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