[過去ログ]
Ruby 初心者スレッド Part 66 (1002レス)
Ruby 初心者スレッド Part 66 http://mevius.5ch.net/test/read.cgi/tech/1578068134/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
251: sage (ワッチョイ 5365-f0Va) [] 2020/03/18(水) 00:02:08.49 ID:NlFyVHMs0 >>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の対話環境じゃ無理なのが、いやはやなんとも http://mevius.5ch.net/test/read.cgi/tech/1578068134/251
252: デフォルトの名無しさん (ワッチョイ 292c-cvBQ) [sage] 2020/03/18(水) 00:49:04.35 ID:LQtyodHE0 元々、Ruby/Groovy は似てる。 JavaScript, Kotlin も、Ruby/Groovy に似せてきてる >>241 有名な雑食系エンジニア・KENTA も、YouTube で言ってるけど、 将来的に、機械学習・AI をやりたいからと言って、Python から始めるのは間違いです! 初心者は、Ruby でプログラミング自体を学ぶべき Ruby on Rails を一通りやると、アプリ製作の全工程を学べる。 後はそれを他言語へ置き換えるだけ それと、多くの学校が、Ruby を勧めるのは、就職率が高いから。 Python の場合は、web系の仕事が、1/10 しかない 機械学習・AI は、大学院・英検準一級などの高学歴が必要だから、 高卒などのプログラミング初心者を雇わない 高卒web系プログラマーは、Ruby。 高学歴総合職は、Python この内、学校で教えられるのは、Ruby。 Pythonを教えても、就職できないから詐欺になってしまう http://mevius.5ch.net/test/read.cgi/tech/1578068134/252
253: デフォルトの名無しさん (ワッチョイ d9ad-NT4g) [sage] 2020/03/18(水) 04:59:33.67 ID:/KOWoh670 >>244 それな RailsなくてもRuby単体でも十分快適 ただWindows環境とデスクトップでのGUIが どっちもイマイチだからWeb専用言語 みたいな扱いになってるんだろうか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/253
254: デフォルトの名無しさん (ワッチョイ d9ad-NT4g) [sage] 2020/03/18(水) 05:02:26.13 ID:/KOWoh670 >>250 Rubyは文法がシンプルで書きやすいんだよな 書きやすさだけで言ったら Ruby > Python >>> JavaScript JavaScriptは変なクセと ローカルルールが多すぎる http://mevius.5ch.net/test/read.cgi/tech/1578068134/254
255: デフォルトの名無しさん (ワッチョイ 29d2-CgSh) [] 2020/03/18(水) 08:17:19.36 ID:r6r+WwC90 >>250 Rubyのjoinなら事前の文字列化は不要なので a.sort.reverse.join('-') http://mevius.5ch.net/test/read.cgi/tech/1578068134/255
256: デフォルトの名無しさん (ワイーワ2 FF63-hOSC) [] 2020/03/18(水) 13:14:11.40 ID:fwLKdVFoF 語順に拘る必要は無いと思う a = [3,5,1,2,4] '-'.join(pd.Series(a).sort_values(ascending=False).apply(str)) http://mevius.5ch.net/test/read.cgi/tech/1578068134/256
257: デフォルトの名無しさん (ワッチョイ 9301-lXNI) [sage] 2020/03/18(水) 14:43:54.21 ID:mQYnVt2r0 >>249 違うよ 教えるコアな要素は共通にもかかわらず 初心者がつまづく内容や頻度だったりそれを自己解決できる割合が言語によってかなり違う それが習熟速度に影響を与える一番の要因 ABテストやってみたいねと書いたのは複数言語を学習する順番が プログラミング習熟度に与える影響の調査をペーパー書けるくらいフォーマルにやってみたいねって話 3言語なら最低6グループ必要になるわけで 統計的に意味ある人数集めてそんなテストするの普通の会社では無理だからね Aグループ: Ruby -> Python -> JavaScript Bグループ: Python -> JavaScript -> Ruby … http://mevius.5ch.net/test/read.cgi/tech/1578068134/257
258: デフォルトの名無しさん (ワッチョイ 9301-lXNI) [sage] 2020/03/18(水) 14:56:08.21 ID:mQYnVt2r0 >>256 思考の順序とコードで表現する順序が近ければ近いほど 思考ノイズが少なくて初心者に限らず人間には理解しやすい 単にできればいいってもんじゃない 結局Pythonでわかりやすく読みやすいコードを書くには 自然な思考順序と異なる部分をラップした関数を独自に定義していくか Pythonで表現できる順序に自分の思考順序を合わせていくしかなく 一般に読みやすいと思えるコードを書く労力がRubyに比べると段違いで多い 少し前にPythonスレで質問があったflattenがいい例 http://mevius.5ch.net/test/read.cgi/tech/1578068134/258
259: デフォルトの名無しさん (ワッチョイ 292c-cvBQ) [sage] 2020/03/19(木) 04:20:21.38 ID:JDU05jIv0 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 ) //=> 偽 http://mevius.5ch.net/test/read.cgi/tech/1578068134/259
260: デフォルトの名無しさん (ワッチョイ d9ad-NT4g) [sage] 2020/03/19(木) 07:34:00.79 ID:Twc2892j0 >>258 Rubyの文法は自然だと思う >>259 ゼロを偽に使うのは筋悪だね http://mevius.5ch.net/test/read.cgi/tech/1578068134/260
261: デフォルトの名無しさん (ワッチョイ 1314-9KJh) [sage] 2020/03/19(木) 09:26:18.85 ID:YUAN2W2v0 コマンドが正常に終了した時は0を返すもんですよ http://mevius.5ch.net/test/read.cgi/tech/1578068134/261
262: デフォルトの名無しさん (スフッ Sd33-AM22) [] 2020/03/19(木) 12:39:59.01 ID:Xi+VoJGEd Rubyが理解できれば、JavaScriptもだいたい理解できるってまじっすか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/262
263: デフォルトの名無しさん (ワッチョイ 292c-cvBQ) [sage] 2020/03/19(木) 13:04:35.38 ID:JDU05jIv0 Ruby・Groovy は似てる。 JavaScript, jQuery, Kotlin は、メソッドチェーン中心で、Rubyに似せてきてる サーバー側のNode.js は、Rubyのコピー。 npm(node package manager), yarn は、Bundler のコピー CakePHP, Spring Boot は、Rails のコピー。 だから、流行った Rails がサーバー側の標準。 だから、RubyからLinux とか、サーバー側へ進む人が多い http://mevius.5ch.net/test/read.cgi/tech/1578068134/263
264: デフォルトの名無しさん (ドコグロ MM95-u5rl) [sage] 2020/03/19(木) 13:10:40.14 ID:TVS3Wm7/M >>262 RubyはRails Scriptとして使うだけならさほど難しくはないが純粋に言語としては極めて複雑な部類で、 Rubyを理解した、と自信を持って言えるレベルならJavaScriptなどもはや楽勝 http://mevius.5ch.net/test/read.cgi/tech/1578068134/264
265: デフォルトの名無しさん (ワッチョイ d9ad-NT4g) [sage] 2020/03/19(木) 13:16:56.47 ID:Twc2892j0 >>262 Rubyを覚えれば Pythonはだいたい理解できる JavaScriptはちょっと理解できる クセがある部分が多いから まあ2015でクラス構文が入って だいぶマシになったけど http://mevius.5ch.net/test/read.cgi/tech/1578068134/265
266: デフォルトの名無しさん (ワッチョイ 13a5-TOPM) [sage] 2020/03/19(木) 13:49:34.22 ID:PJNEdIzn0 クラスが入っただけでマシになった、ってことか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/266
267: デフォルトの名無しさん (ワッチョイ 292c-cvBQ) [sage] 2020/03/19(木) 14:07:04.70 ID:JDU05jIv0 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 ] http://mevius.5ch.net/test/read.cgi/tech/1578068134/267
268: デフォルトの名無しさん (オッペケ Sr85-NT4g) [sage] 2020/03/19(木) 16:59:22.58 ID:88pUuzIXr JavaScriptはクラス定数すら定義できないからな 最近のはしらんが http://mevius.5ch.net/test/read.cgi/tech/1578068134/268
269: デフォルトの名無しさん (ワッチョイ b902-Hfmd) [sage] 2020/03/19(木) 17:00:49.00 ID:DXn00lXA0 Pythonはうんこだが、Rubyのメソッドチェーンも今となってはゴミの部類で パイプライン演算子こそが正解 http://mevius.5ch.net/test/read.cgi/tech/1578068134/269
270: デフォルトの名無しさん (アウウィフ FF5d-hOSC) [] 2020/03/19(木) 17:26:29.02 ID:yS5RdDEsF http://codepad.org/DO0Yq0CS http://codepad.org/jmDGu9SR http://mevius.5ch.net/test/read.cgi/tech/1578068134/270
271: デフォルトの名無しさん (ワッチョイ 1161-44a/) [sage] 2020/03/20(金) 00:53:19.01 ID:405ti7Ej0 >>264 JS は、promise, then, async, waitUntil, ServiceWorker(PWA)などの部分がかなり難しく感じる。 event の bubbling phase, capture phase, target phase と絡んで cancelBubble, stopPropagation, preventDefault の話も正確に理解するのはなかなか難しい。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/271
272: デフォルトの名無しさん (ワッチョイ 1161-44a/) [sage] 2020/03/20(金) 00:56:41.66 ID:405ti7Ej0 event.waitUntil() event.respondWith() はいまだにちゃんと理解できてない。 ServiceWorkerのWorker Lifecycleも物凄く理解が難しい。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/272
273: デフォルトの名無しさん (ワッチョイ 1161-44a/) [sage] 2020/03/20(金) 01:05:01.24 ID:405ti7Ej0 さらに、Blob の概念も独特で難しい気がする。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/273
274: デフォルトの名無しさん (ワッチョイ 1161-44a/) [sage] 2020/03/20(金) 01:07:27.55 ID:405ti7Ej0 これも理解できない。 誰かに教えてほしい。 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); }()); }); http://mevius.5ch.net/test/read.cgi/tech/1578068134/274
275: デフォルトの名無しさん (ワッチョイ 9301-lXNI) [sage] 2020/03/20(金) 01:51:15.32 ID:b2ihZgLg0 >>271 その中で言語の要素はpromise/then/asyncの3つだけ それも全部Promise 言語とフレームワーク/APIは分けて捉えないと RubyとRailsを混同してるのと同じ http://mevius.5ch.net/test/read.cgi/tech/1578068134/275
276: デフォルトの名無しさん (ワッチョイ 1161-44a/) [sage] 2020/03/20(金) 01:54:59.68 ID:405ti7Ej0 >>275 でも今のJSでPromiseを避けて済ますことは難しい。 特にPWAのHelloWorld的なプログラムで>>274のように、 Promise, async, await, respondWith などの難しいが概念が同時に出てきてしまい、挫折してしまう可能性が高い。 やりたいことは単に、ウェブアプリのアイコンをホーム画面に出したいだけだと言うのに。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/276
277: デフォルトの名無しさん (ワッチョイ 292c-cvBQ) [sage] 2020/03/20(金) 09:01:29.50 ID:CQQp7Y750 jQuery でも基本は、Promise。 成功・失敗時の処理を書けばよい async/await は、非同期を同期的に書ける。 内側にネストしないように書ける http://mevius.5ch.net/test/read.cgi/tech/1578068134/277
278: デフォルトの名無しさん (ブーイモ MM4d-vZZ2) [sage] 2020/03/20(金) 10:07:25.86 ID:IqcuAu3DM >>276 >でも今のJSでPromiseを避けて済ますことは難しい。 言語が提供する機能とそれ以外を区別しろって言われてこれかよw Promiseが理解できないのも納得 http://mevius.5ch.net/test/read.cgi/tech/1578068134/278
279: デフォルトの名無しさん (ワッチョイ 8b14-9KJh) [sage] 2020/03/20(金) 10:14:58.61 ID:u1wBzCgK0 >>276 × でも今のJSでPromiseを避けて済ますことは難しい。 ○ 非同期プログラミングをするならどの言語でも一緒 GUI関連は大抵の言語で非同期処理をする 要するに画面の描画をブロックしてはいけないからだ。 RubyはそもそもGUIとかでてこないから 使わないだけ http://mevius.5ch.net/test/read.cgi/tech/1578068134/279
280: デフォルトの名無しさん (ワッチョイ 1161-f9wa) [sage] 2020/03/20(金) 11:04:22.80 ID:405ti7Ej0 >>279 例えば、Win32APIなど非同期処理もMSDNを読めばちゃんと理解できる。 ところが、Promiseは公式サイトが何を言っているのか分からないので 99%の人が理解できない。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/280
281: デフォルトの名無しさん (アウウィフ FF5d-jdQV) [] 2020/03/20(金) 11:30:29.28 ID:nAHhYb7gF 馬鹿除けにちょうど良い機能やん http://mevius.5ch.net/test/read.cgi/tech/1578068134/281
282: デフォルトの名無しさん (ワッチョイ d312-c6Tf) [sage] 2020/03/23(月) 10:55:32.08 ID:mWzqBLYF0 jsは伝統的にコールバックをやってきたというのを知っていないと理解は難しいかもね promiseはコールバック地獄の救世主だからそれなしでは語れない イベント系はもともとクリックされたらみたいなこととこから始まってるのを知ってないとイメージがつかめないだろうな http://mevius.5ch.net/test/read.cgi/tech/1578068134/282
283: デフォルトの名無しさん (ワッチョイ 13a5-TOPM) [sage] 2020/03/23(月) 10:59:24.89 ID:7lDoSnDw0 Cをみりゃ分かる コールバック地獄の救世主なんていない まやかしだ http://mevius.5ch.net/test/read.cgi/tech/1578068134/283
284: デフォルトの名無しさん (ワッチョイ 8b2c-cvBQ) [] 2020/03/24(火) 12:55:54.95 ID:n56XI6Ab0 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行目は、バグなのかな? http://mevius.5ch.net/test/read.cgi/tech/1578068134/284
285: 284 (ワッチョイ 8b2c-cvBQ) [sage] 2020/03/24(火) 13:30:12.20 ID:n56XI6Ab0 rbenv-installer の間違いの訳ないよな。 漏れの手順・環境がおかしいのか 初回はホームディレクトリで実行して、 インストール後はホームディレクトリではなく、~/.rbenv ディレクトリで、実行するのかな? eval "$(rbenv init -)" してるけど、まだどのバージョンも入れていないから、 rbenv というディレクトリは存在しないのかも? バージョンを入れたら、rbenv というディレクトリが作られるのかも? http://mevius.5ch.net/test/read.cgi/tech/1578068134/285
286: デフォルトの名無しさん (ワッチョイ b15f-jdQV) [] 2020/03/24(火) 13:32:10.90 ID:WT9cP8p50 文句言う前に VMでも何でも良いから 素の生インスコ環境造って 他の影響を排除してみ http://mevius.5ch.net/test/read.cgi/tech/1578068134/286
287: デフォルトの名無しさん (ワッチョイ 8b14-9KJh) [sage] 2020/03/24(火) 15:16:18.23 ID:fj9Tix3R0 >>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シェル関数を定義していたりしないか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/287
288: デフォルトの名無しさん (ワッチョイ 8b14-9KJh) [sage] 2020/03/24(火) 15:26:44.36 ID:fj9Tix3R0 まあバグとまでは言わんけど、対応漏れとして / で始まらないものは シェル関数として省くとかすれば対応は可能かもしれんなぁ。 それ周りの解決法は調べた事ないので、どうするのがベストなのかしらんけど http://mevius.5ch.net/test/read.cgi/tech/1578068134/288
289: 284 (ワッチョイ 8b2c-cvBQ) [sage] 2020/03/24(火) 17:01:58.24 ID:n56XI6Ab0 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 変数にパスが入ってくるのかも知れない。 こんなに有名なアプリに、こんな単純なバグがあるとは思えないし、漏れの勘違いでしょう http://mevius.5ch.net/test/read.cgi/tech/1578068134/289
290: デフォルトの名無しさん (ワッチョイ 0dad-OG1y) [sage] 2020/03/28(土) 22:49:31.98 ID:413BE/qa0 たのしいRuby第5版の古本買ったのでRuby入門します(^_^)/ http://mevius.5ch.net/test/read.cgi/tech/1578068134/290
291: デフォルトの名無しさん (ワッチョイ 5e2c-2pFN) [] 2020/03/28(土) 23:25:45.38 ID:lvHGCPQW0 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 http://mevius.5ch.net/test/read.cgi/tech/1578068134/291
292: デフォルトの名無しさん (ワッチョイ 5dad-+vel) [sage] 2020/04/01(水) 03:54:14.10 ID:PTOn+beS0 VScodeでRuby実行環境作ったけど楽しいは! サクサク動かして試せる! http://mevius.5ch.net/test/read.cgi/tech/1578068134/292
293: デフォルトの名無しさん (ワッチョイ 4b2c-AHN4) [] 2020/04/01(水) 05:08:16.41 ID:T/a2Vy7O0 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 も、いらなくなるかも http://mevius.5ch.net/test/read.cgi/tech/1578068134/293
294: デフォルトの名無しさん (ワッチョイ 23ad-/I61) [age] 2020/04/01(水) 05:23:37.67 ID:d9NDYWBE0 インスタンスがどれで変数の型がどれでオブジェクトはどれってごっちゃになってわからないのですが class A=new A() インスタンスはこの行全てを指すのですか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/294
295: デフォルトの名無しさん (オッペケ Sr01-KN+/) [sage] 2020/04/01(水) 07:10:14.21 ID:uldFLeaHr まず日本語の勉強から始めろ http://mevius.5ch.net/test/read.cgi/tech/1578068134/295
296: sage (ワッチョイ e365-YFbg) [] 2020/04/01(水) 08:45:05.94 ID:Y4BtYbUm0 まず、そもそも class A=new A() は Ruby の文法として完全に誤りだ Ruby では、クラス A を定義するなら、class A; … ; end と書く 同様に、クラス A からインスタンスを生成して変数 a に代入するには a = A.new と書く プログラミングが初めてであればオブジェクト指向の概念がゴッチャになるのは しかたないとはいえ、それ以前にプログラミングの基本から学んだほうが良いと思うよ http://mevius.5ch.net/test/read.cgi/tech/1578068134/296
297: デフォルトの名無しさん (ワッチョイ 4b2c-AHN4) [sage] 2020/04/01(水) 09:07:03.23 ID:T/a2Vy7O0 ひとまずこれで、クラスA を定義して、その設計書に基づき、 インスタンス・実体a・b を作った クラス内に、変数・関数を定義していけば、より本格的なクラスになっていく class A end a = A.new b = A.new http://mevius.5ch.net/test/read.cgi/tech/1578068134/297
298: デフォルトの名無しさん (ワイーワ2 FF93-8H9x) [] 2020/04/01(水) 11:18:53.70 ID:5VJq6KKKF a = (class A; end).new とかあるんだっけ http://mevius.5ch.net/test/read.cgi/tech/1578068134/298
299: デフォルトの名無しさん (ワッチョイ e5ad-KN+/) [sage] 2020/04/01(水) 14:38:45.50 ID:8LLFjcSO0 >>294 Rubyにおいてはすべてがオブジェクトなので 変数の型はクラスだと考えてよい (他言語はそうとは限らない) インスタンスは個別の状態(変数)を持ったもので 「オブジェクト」という言葉は文脈によって クラスとインスタンスの両方の意味で用いられる よくある喩えで言うと人間はクラスで 太郎や花子がインスタンス 太郎と花子はどちらも人間(クラス)だけど 個々の状態(性別や年齢などの変数)は異なる とりあえずの回答としてはざっとこんなもんだが オブジェクト指向を本格的に習得したいなら 本で勉強する必要があるだろう http://mevius.5ch.net/test/read.cgi/tech/1578068134/299
300: デフォルトの名無しさん (ワッチョイ 558f-q/Tg) [sage] 2020/04/01(水) 16:10:35.31 ID:nPBcGZ1y0 1はIntegerクラスのインスタンス “abc”はStringクラスのインスタンス [1,2,3]はArrayクラスのインスタンス Integer, String, ArrayはClassクラスのインスタンス ClassもClassクラスのインスタンス http://mevius.5ch.net/test/read.cgi/tech/1578068134/300
301: デフォルトの名無しさん (ワッチョイ 1b8c-CgtG) [sage] 2020/04/01(水) 21:25:17.43 ID:XvdBTC2x0 オブジェクトを使った例文もプリーズ http://mevius.5ch.net/test/read.cgi/tech/1578068134/301
302: 299 (ワッチョイ e5ad-KN+/) [sage] 2020/04/01(水) 22:04:08.48 ID:8LLFjcSO0 class Human attr_reader :age, :sex def initialize(age, sex) @age = age @sex = sex end end taro = Human.new(24,'man') hanako = Human.new(18, 'woman') p taro.age p taro.sex p hanako.age p hanako.sex http://mevius.5ch.net/test/read.cgi/tech/1578068134/302
303: 299 (ワッチョイ e5ad-KN+/) [sage] 2020/04/01(水) 22:07:05.34 ID:8LLFjcSO0 >>299 >>302 文章説明したこと(だけ)の サンプルコード 同じHumanクラスだが インスタンスとして taroとhanakoは異なる インスタンス変数ageとsexも インスタンスごとに 異なった状態になっている それだけのことだけど基本中の基本 http://mevius.5ch.net/test/read.cgi/tech/1578068134/303
304: 284 (ワッチョイ 4b2c-AHN4) [] 2020/04/02(木) 12:07:15.86 ID:BA8GpIv40 >>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 されます http://mevius.5ch.net/test/read.cgi/tech/1578068134/304
305: デフォルトの名無しさん (ワッチョイ 1d14-hvMa) [sage] 2020/04/02(木) 12:56:23.11 ID:qWu3pHo10 いみがまったくわからんどうでもいいや http://mevius.5ch.net/test/read.cgi/tech/1578068134/305
306: デフォルトの名無しさん (JP 0H93-3bw/) [] 2020/04/02(木) 13:56:36.20 ID:vZC8Eo+WH simulationライブラリで純粋な関数式プログラミングをする ttp://x0000.net/topic.aspx?id=3631-0 UIライブラリ (C#, 2D) を作ったよ ttp://x0000.net/topic.aspx?id=3688-0 学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net 数学 物理学 化学 生物学 天文学 地理地学 IT 電子 工学 言語学 国語 方言 など http://mevius.5ch.net/test/read.cgi/tech/1578068134/306
307: 284 (ワッチョイ 4b2c-AHN4) [sage] 2020/04/02(木) 14:07:46.77 ID:BA8GpIv40 これを、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 http://mevius.5ch.net/test/read.cgi/tech/1578068134/307
308: デフォルトの名無しさん (ワッチョイ a301-51IN) [sage] 2020/04/02(木) 14:48:16.09 ID:s8KkhiHc0 >>304 >>287に書いてたよね >しかし rbenv-installer は別コマンドだ、現在のシェルで定義しているシェル関数の rbenv が >呼び出したrbenv-installerという子プロセスから見つかるはずがない。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/308
309: デフォルトの名無しさん (オッペケ Sr01-KN+/) [sage] 2020/04/02(木) 15:03:21.14 ID:Jw7S0ezcr 車輪の再発名というか糞の再生産というか http://mevius.5ch.net/test/read.cgi/tech/1578068134/309
310: デフォルトの名無しさん (エムゾネ FF43-8H9x) [] 2020/04/02(木) 18:25:33.41 ID:4X8ewqwSF Ruby信者が別のRuby信者を何人感染させるか 1を下回ってると思う http://mevius.5ch.net/test/read.cgi/tech/1578068134/310
311: デフォルトの名無しさん (ワッチョイ 4b2c-AHN4) [] 2020/04/03(金) 12:39:37.64 ID:tv+k2Xei0 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 http://mevius.5ch.net/test/read.cgi/tech/1578068134/311
312: 284 (ワッチョイ 4b2c-AHN4) [sage] 2020/04/03(金) 13:04:09.91 ID:tv+k2Xei0 >>307 の話題は、シェルスクリプトのスレへ移動しました! シェルスクリプト総合 その33 https://mevius.5ch.net/test/read.cgi/tech/1584893550/56-60 http://mevius.5ch.net/test/read.cgi/tech/1578068134/312
313: デフォルトの名無しさん (ワッチョイ a301-51IN) [sage] 2020/04/03(金) 14:05:19.68 ID:q/cvlU880 >>311 pry> "20".ljust(3, "0") => "200" pry> "20".rjust(3, "0") => "020" Stringのメソッドに目的のものがないかどうかを最初に探そう https://docs.ruby-lang.org/ja/latest/class/String.html http://mevius.5ch.net/test/read.cgi/tech/1578068134/313
314: デフォルトの名無しさん (ワッチョイ 15e6-20Ab) [sage] 2020/04/03(金) 16:23:36.74 ID:CpQ2Rjn20 "%03d" % "02" # "002" では、何か不味いのか http://mevius.5ch.net/test/read.cgi/tech/1578068134/314
315: 311 (ワッチョイ 4b2c-AHN4) [sage] 2020/04/03(金) 17:00:52.81 ID:tv+k2Xei0 0 で始まる文字列は、8進数と解釈されるのか、08, 09 などでエラーになる! "%03d" % "07" # OK "%03d" % "08" # エラー >>313 ありがとう http://mevius.5ch.net/test/read.cgi/tech/1578068134/315
316: デフォルトの名無しさん (ワッチョイ 6b7d-9V/B) [sage] 2020/04/03(金) 17:22:43.70 ID:Tlqo6QWT0 "%03d" % "08".to_i #=> "008" http://mevius.5ch.net/test/read.cgi/tech/1578068134/316
317: 311 (ワッチョイ 4b2c-AHN4) [sage] 2020/04/03(金) 18:14:05.62 ID:tv+k2Xei0 先頭から続く、0 は鬼門! それらを除去したい。よい方法は? 0080 → 80 123 → 123 "" → "" 000 → "" http://mevius.5ch.net/test/read.cgi/tech/1578068134/317
318: デフォルトの名無しさん (ワッチョイ a301-51IN) [sage] 2020/04/03(金) 18:26:24.61 ID:q/cvlU880 >>317 >000 → "" “000”のleading zeroを除くと“0”では? http://mevius.5ch.net/test/read.cgi/tech/1578068134/318
319: 311 (ワッチョイ 4b2c-AHN4) [sage] 2020/04/03(金) 18:51:12.37 ID:tv+k2Xei0 先頭から続くかぎり、除去するので、これで良いです。 000 → "" これは、自作するのは難しい。 プログラミングのお題に出してみようか http://mevius.5ch.net/test/read.cgi/tech/1578068134/319
320: デフォルトの名無しさん (ワッチョイ a301-51IN) [sage] 2020/04/03(金) 18:59:52.23 ID:q/cvlU880 そっか、じゃ正規表現だね "000".sub(/^0+/, "") #=> "" "123".sub(/^0+/, "") #=> "123" "0080".sub(/^0+/, "") #=> "80" http://mevius.5ch.net/test/read.cgi/tech/1578068134/320
321: 311 (ワッチョイ 4b2c-AHN4) [sage] 2020/04/03(金) 19:02:21.43 ID:tv+k2Xei0 >>319 修正 0 → "" 000 → "" やっぱり、これらは空文字列よりも、0 にした方が良さそう 0・000 → 0 http://mevius.5ch.net/test/read.cgi/tech/1578068134/321
322: デフォルトの名無しさん (オッペケ Sr01-KN+/) [sage] 2020/04/03(金) 19:52:06.49 ID:MoLJYTUlr なんやこのガキ http://mevius.5ch.net/test/read.cgi/tech/1578068134/322
323: 311 (ワッチョイ 4b2c-AHN4) [sage] 2020/04/03(金) 20:00:56.29 ID:tv+k2Xei0 プログラミングのお題の方に書き込んだので、このスレから移動してください! http://mevius.5ch.net/test/read.cgi/tech/1578068134/323
324: デフォルトの名無しさん (ワッチョイ 6352-cvTZ) [sage] 2020/04/03(金) 20:10:53.88 ID:y4LIlYUL0 >>322 有名な荒しだよ >>323 誰もお前の独り言に興味ないから一人で行け。 いや、向こうのスレに迷惑をかけるな。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/324
325: デフォルトの名無しさん (オッペケ Sr01-KN+/) [sage] 2020/04/03(金) 20:24:38.54 ID:MoLJYTUlr >>324 この板の荒らしって単芝君くらいしか知らんかったわ http://mevius.5ch.net/test/read.cgi/tech/1578068134/325
326: デフォルトの名無しさん (ワッチョイ a301-51IN) [sage] 2020/04/03(金) 20:48:35.54 ID:q/cvlU880 >>323 お題スレは質スレじゃないんだから並行してても別にいいよ あそこはお題に対してこんな解き方もあるんやでを披露しあって楽しむ処 http://mevius.5ch.net/test/read.cgi/tech/1578068134/326
327: デフォルトの名無しさん (ワッチョイ 6352-cvTZ) [sage] 2020/04/03(金) 20:55:22.75 ID:y4LIlYUL0 >>325 いくつかのスレのタイトルにRuby禁止と書かれているのは、そいつか原因になっている。 活発に活動していて、コテもつけてないが書きっぷりで一目で分かるので目障りきわまりない。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/327
328: 291 (ワッチョイ 4b2c-AHN4) [] 2020/04/05(日) 14:17:50.21 ID:eWBrSqct0 Windows 10, WSL, Ubuntu 18.04 で、 rbenv で、Ruby 2.6.5 をインストールして、 PowerShell で、wsl と入力し、 Windows 側のプロジェクトフォルダへ移動してから、 Gemfile に、gem "rails" と書いて、bundle install と入力すると、 nokogiri 1.10.9 with native extensions のコンパイルに数分掛かったが、 エラーもなく、rails 6.0.2.2 がインストールされた! でも、SQLite, Node.js などが無いけど http://mevius.5ch.net/test/read.cgi/tech/1578068134/328
329: デフォルトの名無しさん (ワッチョイ cb68-CuPJ) [sage] 2020/04/07(火) 16:20:09.03 ID:FvbCZ7uW0 初歩的な質問ですみません print(”Hello, Ruby.\n")と打つと デバイス PRN を初期化できません とエラーが出ます。たのしいRubyの手順通りにしたのですが こう表示されてしまいます。本にはこのエラーの対処法が載っていないので 困っています。ご教授お願い致します。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/329
330: デフォルトの名無しさん (アウウィフ FFe9-8H9x) [] 2020/04/07(火) 16:35:32.77 ID:G5F9VLMpF 知恵をくれで概出 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10208842775 ぐぐれ http://mevius.5ch.net/test/read.cgi/tech/1578068134/330
331: デフォルトの名無しさん (ワッチョイ cb68-CuPJ) [sage] 2020/04/07(火) 16:48:40.00 ID:FvbCZ7uW0 >>330さん ググったのですが意味が解らず… DOSプロンプトで見たらインストールは正常にされたみたいです。 詳しく教えていただければおっぱい見せます。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/331
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 671 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s