1 名前:デフォルトの名無しさん [2020/01/04(土) 01:15:34.30 ID:X7t3Qsuc0.net] プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ 質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。 Ruby on Rails については、WEBプログラミング板で 前スレ Ruby 初心者スレッド Part 65 https://mevius.5ch.net/test/read.cgi/tech/1545421414/ るりまサーチ (リファレンス検索) rurema.clear-code.com/ Rubyist Magazine - るびま jp.rubyist.net/magazine/ 逆引きRuby www.namaraii.com/rubytips/ Ruby コミュニティ公式 https://www.ruby-lang.org/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
236 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 21:40:53.72 ID:f8XVsIbI0.net] Rubyの方がCOBOLより先に死滅する希ガス
237 名前:デフォルトの名無しさん [2020/03/06(金) 22:57:29.86 ID:rcgbHB5O0.net] 慢心と言うより 補助金事業になったら碌なことにならない例の一つ
238 名前:デフォルトの名無しさん (ワッチョイ cbad-wzO4) mailto:sage [2020/03/07(土) 03:49:31 ID:meF2wfp30.net] 補助金が腐らせるの 日本のあるあるだな!
239 名前:デフォルトの名無しさん (ワッチョイ ef8c-NYnE) [2020/03/07(土) 12:58:20 ID:Q0oLpIzl0.net] >>226 コメントアウトの仕方
240 名前:デフォルトの名無しさん (ワッチョイ 2ba5-Inmc) mailto:sage [2020/03/07(土) 13:58:54 ID:H7f33zo10.net] Rubyは日本の言語ではなくて 日本発だけど 日本からアメリカのユタ州に税金を抜かれるだけの言語だ
241 名前:デフォルトの名無しさん [2020/03/07(土) 16:10:40.97 ID:ZoK+qwRc0.net] 補助金で食える人数も限られてるから、余計に閉鎖的になってく
242 名前:デフォルトの名無しさん mailto:sage [2020/03/07(土) 19:42:14.60 ID:meF2wfp30.net] 補助金で喰える上級Ruby国民は安泰だけど 下級Ruby国民はPythonに逃げ出してる現状
243 名前:デフォルトの名無しさん (ワッチョイ 4b2d-hds7) [2020/03/10(火) 16:47:55 ID:rx4TAX460.net] Rubyの高額教材屋も増えまくってたり、こんなの国が金を出して支援するもんじゃないよもう
244 名前:デフォルトの名無しさん (ワッチョイ ab01-xzLc) mailto:sage [2020/03/10(火) 21:55:43 ID:uPXabSQ00.net] perlの保守性の低さについて何も学ばなかったから。
245 名前:デフォルトの名無しさん mailto:sage [2020/03/15(日) 06:29:59.66 ID:d7tE7oy90.net] リファレンスマニュアルの正規表現の一覧に (<=pat) 肯定後読み となってるけど正しくは (?<=pat) ですよね
246 名前:デフォルトの名無しさん mailto:sage [2020/03/15(日) 07:01:08.84 ID:fxB2xu91r.net] せやね
247 名前:デフォルトの名無しさん (ワッチョイ 698f-tF/6) mailto:sage [2020/03/17(火) 10:26:17 ID:55EeZ8o40.net] AI環境の差は大きいっすねー 保守性とかどうでもいいしrubyの文法は好きだけど、今から勉強する人にはphthon勧めざるを得ない
248 名前:デフォルトの名無しさん (ワッチョイ a1ad-M7Q/) mailto:sage [2020/03/17(火) 11:47:19 ID:xPTEZvMY0.net] PythonはAIライブラリそろってるからな
249 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 18:17:35.92 ID:Np3/43wU0.net] 機械学習や統計処理のために プログラミングできるようになりたいというひとは 迷わずPythonから初めればいいけど 明確な目的がない場合はRubyから初めさせたほうが プログラミング自体の習熟が断然早い 1ヶ月程度でプログラミングの基礎を身につけたら 後は好きなやつやればいいと思う 新卒で2~3言語学ばせるABテストとかやってみたいね
250 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 18:19:24.38 ID:ybHHyXnP0.net] ABテストやってないのになんでRubyからの方がいいって分かるの
251 名前:デフォルトの名無しさん (ドコグロ MM95-Syvm) mailto:sage [2020/03/17(火) 18:38:35 ID:7aCFf3OgM.net] 明確な目的のない奴にRails専用スクリプト(別名Ruby)を勧めるのはさすがにどうかと
252 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 19:08:20.64 ID:55EeZ8o40.net] 別にrailsなんかなくたってperlよりモダンな汎用スクリプト言語ではあるやろ
253 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 19:19:47.39 ID:7aCFf3OgM.net] >>244 Windowsでまともに使い物にならないのは汎用スクリプトとしては致命的 ぶっちゃけPythonがビッグデータやAIで持て囃されてるのもWindowsと相性いいからだよ ビッグデータやAIはエンタープライズで金になるテーマだからWindowsと相性悪いのは論外
254 名前:sage (ワッチョイ a265-aX25) [2020/03/17(火) 22:30:48 ID:Zy9Qhkko0.net] つまり、わざわざRubyスレまで乱入してしまうほど、 Python信者にはRubyへのコンプレックスが強いってことね
255 名前:デフォルトの名無しさん (ワッチョイ d233-YfnF) mailto:sage [2020/03/17(火) 22:32:51 ID:Ai6ps0PO0.net] じゃあPowerShellで!
256 名前:デフォルトの名無しさん (ワッチョイ c201-Ruah) mailto:sage [2020/03/17(火) 23:16:01 ID:Np3/43wU0.net] >>242 C#, JS, Python, Ruby他で初心者教えた経験から来る個人の感想 逆になんでABテストやらないと分からないと思うの?
257 名前:デフォルトの名無しさん (ワッチョイ 02a5-5LgE) mailto:sage [2020/03/17(火) 23:40:22 ID:ybHHyXnP0.net] そりゃ教師そのものがRubyが得意でRuby贔屓ならRubyを教えるのが上手いんでしょ だから生徒はRubyの習熟が早くなる だから本人ですら「ABテストは必要」って思ってるんでしょ 要するに生徒の言語取得速度は教師の得意言語の習熟度合いに比例する
258 名前:sage (ワッチョイ a265-aX25) [2020/03/17(火) 23:45:23 ID:Zy9Qhkko0.net] ぶっちゃけ、Rubyに慣れると、Pythonでコレクションを使うことが苦痛になるんだよな 「コレクションが最高にイケてる言語を作ろう(dat落ち)」から引用 mevius.2ch.net/test/read.cgi/tech/1491491123/43-45 > 43 1 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 18:00:36.59 ID:oGFFYBoD > コレクション使ってて使いづらいと思うことも最近は減ってきたよな > 昔より言語が進歩してるんだろか > > 44 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:23:00.44 ID:Qc8J8Hpx > >>43 > でもねぇ、世の中にはコレクション操作が使いづらい > 退化した最悪な言語が存在する > > d.hatena.ne.jp/edvakf/20090405/1238885788 > > 元々は手続き型として設計された簡潔な言語だったけど、 > オブジェクト指向やら関数型やらを行き当たりばったりに増築し続けたおかげで、 > コレクション操作に関する「一貫性」という設計哲学が破綻してしまった例だね > > 45 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:52:01.71 ID:Qc8J8Hpx > [Ruby] > a.sort().reverse().map{|x| x.to_s}.join('-') > > [JavaScript] > a.sort().reverse().map(function(x) { return x.toString() }).join(“-“) > > [Python] > '-'.join(map(lambda x: str(x), reversed(sorted(a))))
259 名前:sage (ワッチョイ 5365-f0Va) [2020/03/18(水) 00:02:08 ID:NlFyVHMs0.net] >>250 のコレクション操作を例にすると、Rubyならメソッドチェーンが 左から右へ自然と流れるから、ヒストリー機能を利用して 対話的なプログラミングが楽々と実践できる $ irb irb(main):001:0> a = [1,4,3,2] irb(main):002:0> a.sort => [1, 2, 3, 4] irb(main):003:0> a.sort.reverse => [4, 3, 2, 1] irb(main):004:0> a.sort.reverse.map(&:to_s) => ["4", "3", "2", "1"] irb(main):005:0> a.sort.reverse.map(&:to_s).join('-') => "4-3-2-1" irb(main):006:0> Ruby利用者にとっては特別でもなんでもない当たり前の常識だけど、 Pythonの対話環境じゃ無理なのが、いやはやなんとも
260 名前:デフォルトの名無しさん (ワッチョイ 292c-cvBQ) mailto:sage [2020/03/18(水) 00:49:04 ID:LQtyodHE0.net] 元々、Ruby/Groovy は似てる。 JavaScript, Kotlin も、Ruby/Groovy に似せてきてる >>241 有名な雑食系エンジニア・KENTA も、YouTube で言ってるけど、 将来的に、機械学習・AI をやりたいからと言って、Python から始めるのは間違いです! 初心者は、Ruby でプログラミング自体を学ぶべき Ruby on Rails を一通りやると、アプリ製作の全工程を学べる。 後はそれを他言語へ置き換えるだけ それと、多くの学校が、Ruby を勧めるのは、就職率が高いから。
261 名前:Python の場合は、web系の仕事が、1/10 しかない 機械学習・AI は、大学院・英検準一級などの高学歴が必要だから、 高卒などのプログラミング初心者を雇わない 高卒web系プログラマーは、Ruby。 高学歴総合職は、Python この内、学校で教えられるのは、Ruby。 Pythonを教えても、就職できないから詐欺になってしまう [] [ここ壊れてます]
262 名前:デフォルトの名無しさん (ワッチョイ d9ad-NT4g) mailto:sage [2020/03/18(水) 04:59:33 ID:/KOWoh670.net] >>244 それな RailsなくてもRuby単体でも十分快適 ただWindows環境とデスクトップでのGUIが どっちもイマイチだからWeb専用言語 みたいな扱いになってるんだろうか?
263 名前:デフォルトの名無しさん (ワッチョイ d9ad-NT4g) mailto:sage [2020/03/18(水) 05:02:26 ID:/KOWoh670.net] >>250 Rubyは文法がシンプルで書きやすいんだよな 書きやすさだけで言ったら Ruby > Python >>> JavaScript JavaScriptは変なクセと ローカルルールが多すぎる
264 名前:デフォルトの名無しさん (ワッチョイ 29d2-CgSh) [2020/03/18(水) 08:17:19 ID:r6r+WwC90.net] >>250 Rubyのjoinなら事前の文字列化は不要なので a.sort.reverse.join('-')
265 名前:デフォルトの名無しさん [2020/03/18(水) 13:14:11.40 ID:fwLKdVFoF.net] 語順に拘る必要は無いと思う a = [3,5,1,2,4] '-'.join(pd.Series(a).sort_values(ascending=False).apply(str))
266 名前:デフォルトの名無しさん (ワッチョイ 9301-lXNI) mailto:sage [2020/03/18(水) 14:43:54 ID:mQYnVt2r0.net] >>249 違うよ 教えるコアな要素は共通にもかかわらず 初心者がつまづく内容や頻度だったりそれを自己解決できる割合が言語によってかなり違う それが習熟速度に影響を与える一番の要因 ABテストやってみたいねと書いたのは複数言語を学習する順番が プログラミング習熟度に与える影響の調査をペーパー書けるくらいフォーマルにやってみたいねって話 3言語なら最低6グループ必要になるわけで 統計的に意味ある人数集めてそんなテストするの普通の会社では無理だからね Aグループ: Ruby -> Python -> JavaScript Bグループ: Python -> JavaScript -> Ruby …
267 名前:デフォルトの名無しさん (ワッチョイ 9301-lXNI) mailto:sage [2020/03/18(水) 14:56:08 ID:mQYnVt2r0.net] >>256 思考の順序とコードで表現する順序が近ければ近いほど 思考ノイズが少なくて初心者に限らず人間には理解しやすい 単にできればいいってもんじゃない 結局Pythonでわかりやすく読みやすいコードを書くには 自然な思考順序と異なる部分をラップした関数を独自に定義していくか Pythonで表現できる順序に自分の思考順序を合わせていくしかなく 一般に読みやすいと思えるコードを書く労力がRubyに比べると段違いで多い 少し前にPythonスレで質問があったflattenがいい例
268 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 04:20:21.38 ID:JDU05jIv0.net] Ruby の偽は、nil, false の2つだけだが、 JavaScript, Python では、各型に偽があるので、10個ぐらいある こういう書き方ができてしまうのが危険! 整数の0 は偽 昔のC でも、MISRA-C などのコーディング規則で禁止していたもの。 条件式に、bool 値とみなされるもの以外を、 例えば、単純な整数などを使ってはならない let ary = [ ] let message = "" if ( ary.length ) { message = "真" } else { message = "偽" } console.log( message ) //=> 偽
269 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 07:34:00.79 ID:Twc2892j0.net] >>258 Rubyの文法は自然だと思う >>259 ゼロを偽に使うのは筋悪だね
270 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 09:26:18.85 ID:YUAN2W2v0.net] コマンドが正常に終了した時は0を返すもんですよ
271 名前:デフォルトの名無しさん [2020/03/19(木) 12:39:59.01 ID:Xi+VoJGEd.net] Rubyが理解できれば、JavaScriptもだいたい理解できるってまじっすか?
272 名前:デフォルトの名無しさん (ワッチョイ 292c-cvBQ) mailto:sage [2020/03/19(木) 13:04:35 ID:JDU05jIv0.net] Ruby・Groovy は似てる。 JavaScript, jQuery, Kotlin は、メソッドチェーン中心で、Rubyに似せてきてる サーバー側のNode.js は、Rubyのコピー。 npm(node package manager), yarn は、Bundler のコピー CakePHP, Spring Boot は、Rails のコピー。 だから、流行った Rails がサーバー側の標準。 だから、RubyからLinux とか、サーバー側へ進む人が多い
273 名前:デフォルトの名無しさん (ドコグロ MM95-u5rl) mailto:sage [2020/03/19(木) 13:10:40 ID:TVS3Wm7/M.net] >>262 RubyはRails Scriptとして使うだけならさほど難しくはないが純粋に言語としては極めて複雑な部類で、 Rubyを理解した、と自信を持って言えるレベルならJavaScriptなどもはや楽勝
274 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 13:16:56.47 ID:Twc2892j0.net] >>262 Rubyを覚えれば Pythonはだいたい理解できる JavaScriptはちょっと理解できる クセがある部分が多いから まあ2015でクラス構文が入って だいぶマシになったけど
275 名前:デフォルトの名無しさん (ワッチョイ 13a5-TOPM) mailto:sage [2020/03/19(木) 13:49:34 ID:PJNEdIzn0.net] クラスが入っただけでマシになった、ってことか?
276 名前:デフォルトの名無しさん (ワッチョイ 292c-cvBQ) mailto:sage [2020/03/19(木) 14:07:04 ID:JDU05jIv0.net] JavaScript のクラス構文 class Card { constructor( number ) { this.number = number } } let cards = [ ] for ( let count = 1; count <= 5; count++ ) { cards.push( new Card( count ) ) } console.log( cards.map( x => x.number ) ) //=> [ 1, 2, 3, 4, 5 ]
277 名前:デフォルトの名無しさん (オッペケ Sr85-NT4g) mailto:sage [2020/03/19(木) 16:59:22 ID:88pUuzIXr.net] JavaScriptはクラス定数すら定義できないからな 最近のはしらんが
278 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 17:00:49.00 ID:DXn00lXA0.net] Pythonはうんこだが、Rubyのメソッドチェーンも今となってはゴミの部類で パイプライン演算子こそが正解
279 名前:デフォルトの名無しさん [2020/03/19(木) 17:26:29.02 ID:yS5RdDEsF.net] codepad.org/DO0Yq0CS codepad.org/jmDGu9SR
280 名前:デフォルトの名無しさん (ワッチョイ 1161-44a/) mailto:sage [2020/03/20(金) 00:53:19 ID:405ti7Ej0.net] >>264 JS は、promise, then, async, waitUntil, ServiceWorker(PWA)などの部分がかなり難しく感じる。 event の bubbling phase, capture phase, target phase と絡んで cancelBubble, stopPropagation, preventDefault の話も正確に理解するのはなかなか難しい。
281 名前:デフォルトの名無しさん (ワッチョイ 1161-44a/) mailto:sage [2020/03/20(金) 00:56:41 ID:405ti7Ej0.net] event.waitUntil() event.respondWith() はいまだにちゃんと理解できてない。 ServiceWorkerのWorker Lifecycleも物凄く理解が難しい。
282 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 01:05:01.24 ID:405ti7Ej0.net] さらに、Blob の概念も独特で難しい気がする。
283 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 01:07:27.55 ID:405ti7Ej0.net] これも理解できない。 誰かに教えてほしい。 addEventListener('fetch', event => { // Prevent the default, and handle the request ourselves. event.respondWith(async function() { // Try to get the response from a cache. const cachedResponse = await caches.match(event.request); // Return it if we found one. if (cachedResponse) return cachedResponse; // If we didn't find a match in the cache, use the network. return fetch(event.request); }()); });
284 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 01:51:15.32 ID:b2ihZgLg0.net] >>271 その中で言語の要素はpromise/then/async
285 名前:フ3つだけ それも全部Promise 言語とフレームワーク/APIは分けて捉えないと RubyとRailsを混同してるのと同じ [] [ここ壊れてます]
286 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 01:54:59.68 ID:405ti7Ej0.net] >>275 でも今のJSでPromiseを避けて済ますことは難しい。 特にPWAのHelloWorld的なプログラムで>>274 のように、 Promise, async, await, respondWith などの難しいが概念が同時に出てきてしまい、挫折してしまう可能性が高い。 やりたいことは単に、ウェブアプリのアイコンをホーム画面に出したいだけだと言うのに。
287 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 09:01:29.50 ID:CQQp7Y750.net] jQuery でも基本は、Promise。 成功・失敗時の処理を書けばよい async/await は、非同期を同期的に書ける。 内側にネストしないように書ける
288 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 10:07:25.86 ID:IqcuAu3DM.net] >>276 >でも今のJSでPromiseを避けて済ますことは難しい。 言語が提供する機能とそれ以外を区別しろって言われてこれかよw Promiseが理解できないのも納得
289 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 10:14:58.61 ID:u1wBzCgK0.net] >>276 × でも今のJSでPromiseを避けて済ますことは難しい。 ○ 非同期プログラミングをするならどの言語でも一緒 GUI関連は大抵の言語で非同期処理をする 要するに画面の描画をブロックしてはいけないからだ。 RubyはそもそもGUIとかでてこないから 使わないだけ
290 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 11:04:22.80 ID:405ti7Ej0.net] >>279 例えば、Win32APIなど非同期処理もMSDNを読めばちゃんと理解できる。 ところが、Promiseは公式サイトが何を言っているのか分からないので 99%の人が理解できない。
291 名前:デフォルトの名無しさん [2020/03/20(金) 11:30:29.28 ID:nAHhYb7gF.net] 馬鹿除けにちょうど良い機能やん
292 名前:デフォルトの名無しさん mailto:sage [2020/03/23(月) 10:55:32.08 ID:mWzqBLYF0.net] jsは伝統的にコールバックをやってきたというのを知っていないと理解は難しいかもね promiseはコールバック地獄の救世主だからそれなしでは語れない イベント系はもともとクリックされたらみたいなこととこから始まってるのを知ってないとイメージがつかめないだろうな
293 名前:デフォルトの名無しさん mailto:sage [2020/03/23(月) 10:59:24.89 ID:7lDoSnDw0.net] Cをみりゃ分かる コールバック地獄の救世主なんていない まやかしだ
294 名前:デフォルトの名無しさん [2020/03/24(火) 12:55:54.95 ID:n56XI6Ab0.net] Windows 10, WSL, Ubuntu 18.04 を起動して、ユーザーのホームディレクトリで、 Ruby のバージョンマネージャーのrbenv-installer を実行したけど、 rbenv / rbenv-installer https://github.com/rbenv/rbenv-installer/blob/master/bin/rbenv-installer これの34行目 rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)" rbenv は、初回は空文字列だが、インストール後には、rbenv となる 38行目 cd "${rbenv%/*}" これは、cd rbenv するが、rbenv というディレクトリは存在しないのでエラーになる! .rbenv なら存在するけど 51行目 git pull --tags origin master なので、git pull されない この38行目は、バグなのかな?
295 名前:284 mailto:sage [2020/03/24(火) 13:30:12.20 ID:n56XI6Ab0.net] rbenv-installer の間違いの訳ないよな。 漏れの手順・環境がおかしいのか 初回はホームディレクトリで実行して、 インストール後はホームディレクトリではなく、~/.rbenv ディレクトリで、実行するのかな? eval "$(rbenv init -)" してるけど、まだどのバージョンも入れていないから、 rbenv というディレクトリは存在しないのかも? バージョンを入れたら、rbenv というディレクトリが作られるのかも?
296 名前:デフォルトの名無しさん [2020/03/24(火) 13:32:10.90 ID:WT9cP8p50.net] 文句言う前に VMでも何でも良いから 素の生インスコ環境造って 他の影響を排除してみ
297 名前:デフォルトの名無しさん (ワッチョイ 8b14-9KJh) mailto:sage [2020/03/24(火) 15:16:18 ID:fj9Tix3R0.net] >>284 知らんけどさぁ。そのコードだけ見て判断するなら > rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)" まずrbenvには普通はコマンドのフルパスが入る。 二番目の~/.rbenv/bin/rbenvはわかりやすく、そこにrbenvコマンドがあればそのパス 一番目は、rbenvコマンドをPATHから検索して見つかったものが入る。だから本来はフルパス 38行目の cd "${rbenv%/*}" からもフルパスが入ってるという前提で rbenvコマンドがある前提でそのディレクトリに移動しようとしている。 もし本当に rbenv変数に rbenv という文字列が入るとしたら おそらく rbenvがシェル関数の場合だろう。 rbenvというシェル関数は、実は rbenv を使用していると作られる。 正確には eval "$(rbenv init -)" の実行時に定義されている。 しかし rbenv-installer は別コマンドだ、現在のシェルで定義しているシェル関数の rbenv が 呼び出したrbenv-installerという子プロセスから見つかるはずがない。 この前提が崩れるとしたら、 1. rbenv-installer を . コマンド (または source コマンド)で呼び出している。 意図的にやらない限り、そうはならないし、やってるのだから気づくだろう。 そしてもう一つ。 2. rbenvシェル関数がexport -fされている場合だ。通常exportできるのは変数だけなのだが bashの変な機能で関数もexportできて、それを子プロセス(当然bashに限る)から参照できてしまう。 envコマンドで環境変数一覧を表示してみれば、BASH_FUNC_rbenvという特殊な名前で rbenvシェル関数のコードが環境変数に設定されてるのが見えないか?だとしたらそれが原因だ。 普通は関数をexportしてるはずがないんだが、どこかでなにかのついで全シェル関数をexportとかやってないか? 3. もしくはBASH_ENV環境変数を使ってないか?これはbash起動時に自動的に シェルスクリプトを実行するための変数だ、そこでrbenvシェル関数を定義していたりしないか?
298 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 15:26:44.36 ID:fj9Tix3R0.net] まあバグとまでは言わんけど、対応漏れとして / で始まらないものは シェル関数として省くとかすれば対応は可能かもしれんなぁ。 それ周りの解決法は調べた事ないので、どうするのがベストなのかしらんけど
299 名前:284 mailto:sage [2020/03/24(火) 17:01:58.24 ID:n56XI6Ab0.net] rbenv のトップページを参考にして、実行した https://github.com/rbenv/rbenv Basic GitHub Checkout の所で、rbenv-installer を使った。 すると、git clone で、~/.rbenv の下に、ローカルリポジトリが出来た 次に、~/.bashrc (漏れは、~/.bash_aliases)に、下の2行を追加したので、 常に、bash 起動時には、eval "$(rbenv init -)" が実行される export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" >>287 1. rbenv-installer は、1回やっただけです。 2. BASH_FUNC_rbenv は無いです。 3. BASH_ENV という環境変数も無いです which rbenv とすると、環境変数PATH に、~/.rbenv/bin を追加しているから、 ~/.rbenv/bin/rbenv 確かに、38行目の、cd "${rbenv%/*}" は、rbenv 変数の、最初の/ 以下を削除するから、 パスが入っている事を想定しているのかも? ただ、2回目以降に、rbenv-installerを実行した場合に、 51行目のgit pull --tags origin master で、 リモートリポジトリから最新を取得するように書いてあるから、 38行目の、cd "${rbenv%/*}" で、エラーになると、51行目へたどり着けないかなと思って まあ、まだどのバージョンも入れていないから、 バージョンを入れたら、rbenv 変数にパスが入ってくるのかも知れない。 こんなに有名なアプリに、こんな単純なバグがあるとは思えないし、漏れの勘違いでしょう
300 名前:デフォルトの名無しさん (ワッチョイ 0dad-OG1y) mailto:sage [2020/03/28(土) 22:49:31 ID:413BE/qa0.net] たのしいRuby第5版の古本買ったのでRuby入門します(^_^)/
301 名前:デフォルトの名無しさん [2020/03/28(土) 23:25:45.38 ID:lv
] [ここ壊れてます]
302 名前:HGCPQW0.net mailto: Windows 10, WSL, Ubuntu 18.04 で、 rbenv で、Ruby 2.6.5 をインストールできた! CPU-i3 を省エネモード(1コアのみ)で使っていたから、 コンパイルには、25分掛かった build-essential, openssl, readline, zlib のパッケージが必要だった sudo apt install -y build-essential sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev [] [ここ壊れてます]
303 名前:デフォルトの名無しさん mailto:sage [2020/04/01(水) 03:54:14.10 ID:PTOn+beS0.net] VScodeでRuby実行環境作ったけど楽しいは! サクサク動かして試せる!
304 名前:デフォルトの名無しさん [2020/04/01(水) 05:08:16.41 ID:T/a2Vy7O0.net] Windows 10, WSL, Ubuntu 18.04 で、 rbenv で、Ruby 2.6.5 をインストールできた! VSCode のRemote WSL もあるから、改行コードさえ気を付ければ、 Windows側のVSCodeで、Linux側のRubyを動かせる 今までは、WSL のUbuntu アプリを起動して、vim を使ったり、 コマンドプロンプト・PowerShell で、wsl と入力していたけど RubyInstaller for Windows, MSYS2/MINGW も、いらなくなるかも
305 名前:デフォルトの名無しさん mailto:age [2020/04/01(水) 05:23:37.67 ID:d9NDYWBE0.net] インスタンスがどれで変数の型がどれでオブジェクトはどれってごっちゃになってわからないのですが class A=new A() インスタンスはこの行全てを指すのですか?
306 名前:デフォルトの名無しさん (オッペケ Sr01-KN+/) mailto:sage [2020/04/01(水) 07:10:14 ID:uldFLeaHr.net] まず日本語の勉強から始めろ
307 名前:sage [2020/04/01(水) 08:45:05.94 ID:Y4BtYbUm0.net] まず、そもそも class A=new A() は Ruby の文法として完全に誤りだ Ruby では、クラス A を定義するなら、class A; … ; end と書く 同様に、クラス A からインスタンスを生成して変数 a に代入するには a = A.new と書く プログラミングが初めてであればオブジェクト指向の概念がゴッチャになるのは しかたないとはいえ、それ以前にプログラミングの基本から学んだほうが良いと思うよ
308 名前:デフォルトの名無しさん mailto:sage [2020/04/01(水) 09:07:03.23 ID:T/a2Vy7O0.net] ひとまずこれで、クラスA を定義して、その設計書に基づき、 インスタンス・実体a・b を作った クラス内に、変数・関数を定義していけば、より本格的なクラスになっていく class A end a = A.new b = A.new
309 名前:デフォルトの名無しさん [2020/04/01(水) 11:18:53.70 ID:5VJq6KKKF.net] a = (class A; end).new とかあるんだっけ
310 名前:デフォルトの名無しさん mailto:sage [2020/04/01(水) 14:38:45.50 ID:8LLFjcSO0.net] >>294 Rubyにおいてはすべてがオブジェクトなので 変数の型はクラスだと考えてよい (他言語はそうとは限らない) インスタンスは個別の状態(変数)を持ったもので 「オブジェクト」という言葉は文脈によって クラスとインスタンスの両方の意味で用いられる よくある喩えで言うと人間はクラスで 太郎や花子がインスタンス 太郎と花子はどちらも人間(クラス)だけど 個々の状態(性別や年齢などの変数)は異なる とりあえずの回答としてはざっとこんなもんだが オブジェクト指向を本格的に習得したいなら 本で勉強する必要があるだろう
311 名前:デフォルトの名無しさん (ワッチョイ 558f-q/Tg) mailto:sage [2020/04/01(水) 16:10:35 ID:nPBcGZ1y0.net] 1はIntegerクラスのインスタンス “abc”はStringクラスのインスタンス [1,2,3]はArrayクラスのインスタンス Integer, String, ArrayはClassクラスのインスタンス ClassもClassクラスのインスタンス
312 名前:デフォルトの名無しさん (ワッチョイ 1b8c-CgtG) mailto:sage [2020/04/01(水) 21:25:17 ID:XvdBTC2x0.net] オブジェクトを使った例文もプリーズ
313 名前:299 mailto:sage [2020/04/01(水) 22:04:08.48 ID:8LLFjcSO0.net] class Human attr_reader :age, :sex def initialize(age, sex) @age = age @sex = sex end end taro = Human.new(24,'man') hanak
314 名前:o = Human.new(18, 'woman') p taro.age p taro.sex p hanako.age p hanako.sex [] [ここ壊れてます]
315 名前:299 (ワッチョイ e5ad-KN+/) mailto:sage [2020/04/01(水) 22:07:05 ID:8LLFjcSO0.net] >>299 >>302 文章説明したこと(だけ)の サンプルコード 同じHumanクラスだが インスタンスとして taroとhanakoは異なる インスタンス変数ageとsexも インスタンスごとに 異なった状態になっている それだけのことだけど基本中の基本
316 名前:284 [2020/04/02(木) 12:07:15.86 ID:BA8GpIv40.net] >>284 疑問が解決しました! >rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)" >rbenv は、初回は空文字列だが、インストール後には、rbenv となる bash スクリプトを実行すると、rbenv には、~/.rbenv/bin/rbenv が入ってきて、正常に処理されます。 これを端末で実行すると、rbenv が出力されるので、挙動が違ってくるだけでした! 思わぬ、引掛けw y="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)" echo $y rbenv x="$(command -v rbenv ~/.rbenv/bin/rbenv | head -2)" echo $x rbenv ~/.rbenv/bin/rbenv その後、cd "${rbenv%/*}" で、~/.rbenv/bin へ移動します なので、51行目で、git pull されます
317 名前:デフォルトの名無しさん mailto:sage [2020/04/02(木) 12:56:23.11 ID:qWu3pHo10.net] いみがまったくわからんどうでもいいや
318 名前:デフォルトの名無しさん [2020/04/02(木) 13:56:36.20 ID:vZC8Eo+WH.net] simulationライブラリで純粋な関数式プログラミングをする ttp://x0000.net/topic.aspx?id=3631-0 UIライブラリ (C#, 2D) を作ったよ ttp://x0000.net/topic.aspx?id=3688-0 学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net 数学 物理学 化学 生物学 天文学 地理地学 IT 電子 工学 言語学 国語 方言 など
319 名前:284 mailto:sage [2020/04/02(木) 14:07:46.77 ID:BA8GpIv40.net] これを、bash スクリプト内に書いて、スクリプトを実行すると、 xxx="$(command -v rbenv)" yyy="$(command -v ~/.rbenv/bin/rbenv)" zzz="$(command -v rbenv ~/.rbenv/bin/rbenv)" xxx, yyy も、~/.rbenv/bin/rbenv で、 zzz も、同じものが2行表示されるけど、これを端末で直接実行すると、 xxx は、rbenv yyy は、~/.rbenv/bin/rbenv zzz は、rbenv, ~/.rbenv/bin/rbenv の2行 xxx では、rbenv のパスが入って来ない! which rbenv と入力すると、ちゃんとパスが表示されるのだけど、 ~/.rbenv/bin/rbenv bash スクリプト内に書いて、それを実行した時と、 端末に直接入力した時では、結果が異なる! それで漏れが勘違いしたという話ですw
320 名前:デフォルトの名無しさん (ワッチョイ a301-51IN) mailto:sage [2020/04/02(木) 14:48:16 ID:s8KkhiHc0.net] >>304 >>287 に書いてたよね >しかし rbenv-installer は別コマンドだ、現在のシェルで定義しているシェル関数の rbenv が >呼び出したrbenv-installerという子プロセスから見つかるはずがない。
321 名前:デフォルトの名無しさん mailto:sage [2020/04/02(木) 15:03:21.14 ID:Jw7S0ezcr.net] 車輪の再発名というか糞の再生産というか
322 名前:デフォルトの名無しさん [2020/04/02(木) 18:25:33.41 ID:4X8ewqwSF.net] Ruby信者が別のRuby信者を何人感染させるか 1を下回ってると思う
323 名前:デフォルトの名無しさん (ワッチョイ 4b2c-AHN4) [2020/04/03(金) 12:39:37 ID:tv+k2Xei0.net] xy4_02.txt → xy4_002.txt みたいに、ファイル名末尾の数字部分を、3桁0埋めにする処理で、 文字列を左右反転して、後ろから処理しているのですが、 02 反転→ 20 (0埋め)→ 200 反転→ 002 format・sprintf で、- 左詰め、0埋めにしても、0埋めできません! 0埋めは、右詰めでしか使えない! "%03d" % "20" # "020" "%-03d" % "20" # "20", 200 にならない! 一方、JavaScript では、両方向で0埋めできますが、 Ruby にも、こういう関数がありますか? "20".padStart( 3, "0" ) // 020 "20".padEnd( 3, "0" ) // 200
324 名前:284 (ワッチョイ 4b2c-AHN4) mailto:sage [2020/04/03(金) 13:04:09 ID:tv+k2Xei0.net] >>307 の話題は、シェルスクリプトのスレへ移動しました! シェルスクリプト総合 その33 https://mevius.5ch.net/test/read.cgi/tech/1584893550/56-60
325 名前:デフォルトの名無しさん (ワッチョイ a301-51IN) mailto:sage [2020/04/03(金) 14:05:19 ID:q/cvlU880.net] >>311 pry> "20".ljust(3, "0") => "200" pry> "20".rjust(3, "0") => "
326 名前:020" Stringのメソッドに目的のものがないかどうかを最初に探そう https://docs.ruby-lang.org/ja/latest/class/String.html [] [ここ壊れてます]
327 名前:デフォルトの名無しさん (ワッチョイ 15e6-20Ab) mailto:sage [2020/04/03(金) 16:23:36 ID:CpQ2Rjn20.net] "%03d" % "02" # "002" では、何か不味いのか
328 名前:311 (ワッチョイ 4b2c-AHN4) mailto:sage [2020/04/03(金) 17:00:52 ID:tv+k2Xei0.net] 0 で始まる文字列は、8進数と解釈されるのか、08, 09 などでエラーになる! "%03d" % "07" # OK "%03d" % "08" # エラー >>313 ありがとう
329 名前:デフォルトの名無しさん mailto:sage [2020/04/03(金) 17:22:43.70 ID:Tlqo6QWT0.net] "%03d" % "08".to_i #=> "008"
330 名前:311 mailto:sage [2020/04/03(金) 18:14:05.62 ID:tv+k2Xei0.net] 先頭から続く、0 は鬼門! それらを除去したい。よい方法は? 0080 → 80 123 → 123 "" → "" 000 → ""
331 名前:デフォルトの名無しさん mailto:sage [2020/04/03(金) 18:26:24.61 ID:q/cvlU880.net] >>317 >000 → "" “000”のleading zeroを除くと“0”では?
332 名前:311 mailto:sage [2020/04/03(金) 18:51:12.37 ID:tv+k2Xei0.net] 先頭から続くかぎり、除去するので、これで良いです。 000 → "" これは、自作するのは難しい。 プログラミングのお題に出してみようか
333 名前:デフォルトの名無しさん mailto:sage [2020/04/03(金) 18:59:52.23 ID:q/cvlU880.net] そっか、じゃ正規表現だね "000".sub(/^0+/, "") #=> "" "123".sub(/^0+/, "") #=> "123" "0080".sub(/^0+/, "") #=> "80"
334 名前:311 (ワッチョイ 4b2c-AHN4) mailto:sage [2020/04/03(金) 19:02:21 ID:tv+k2Xei0.net] >>319 修正 0 → "" 000 → "" やっぱり、これらは空文字列よりも、0 にした方が良さそう 0・000 → 0
335 名前:デフォルトの名無しさん (オッペケ Sr01-KN+/) mailto:sage [2020/04/03(金) 19:52:06 ID:MoLJYTUlr.net] なんやこのガキ
336 名前:311 (ワッチョイ 4b2c-AHN4) mailto:sage [2020/04/03(金) 20:00:56 ID:tv+k2Xei0.net] プログラミングのお題の方に書き込んだので、このスレから移動してください!