- 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
- 802 名前:1 ID:theiHz1p0.net mailto: >>766
paiza.jp は比較的、新しいバージョンだったと思う puts RUBY_VERSION と入力してみ [] - [ここ壊れてます]
- 803 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 21:03:03.13 ID:BMjHKKQ5r.net]
- >>766
そもそものopalのサイト使えば? https://opalrb.com/try/ >>767 標準出力に出力すれば?
- 804 名前:765 [2020/10/01(木) 22:25:46.66 ID:theiHz1p0.net]
- JSON ファイルをcat しても、変換されませんでした!
普通の英数字と、\u6708 みたいな文字が混じっているファイルです
- 805 名前:デフォルトの名無しさん [2020/10/02(金) 09:07:20.78 ID:ugOoTtJuM.net]
- matlabでのfiltfilt()のように、ゼロ位相デジタルフィルター処理ができる関数はなんでしょうか
- 806 名前:デフォルトの名無しさん [2020/10/02(金) 11:29:50.32 ID:36KHjBX6M.net]
- すみませんでした
- 807 名前:765 [2020/10/03(土) 07:39:23.69 ID:/wA+nWqo0.net]
- c@at input.json | pe@rl -@Xpne 's/\\u([0-9a-fA-F]{4})/c@hr(h@ex($1))/eg'
(投稿できないので、@を入れました) で、日本語で表示されました! これを、Ruby では、どう書きますか? 正規表現で、\u6708 みたいな文字を、どう変換するの?
- 808 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 09:17:06.76 ID:DiO6Np8S0.net]
- Rubyだと、正規表現にマッチした部分を引数にして関数に渡してくれる
メソッドが有る筈だから、それを使えば出来るはず。
- 809 名前:デフォルトの名無しさん [2020/10/03(土) 09:27:06.27 ID:F7oAx4CC0.net]
- -Ks -Ke -Ku があるから -Kw もあるはずだろう(驚き最小)
- 810 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 09:32:00.87 ID:DiO6Np8S0.net]
- >>773
以下のようにすれば、\uXXXX の部分を unicode コードとして文字に直した後のテキストが 標準出力に出力されるのではないかと思われる。 なお、試して無いので実際に動くかどうかは分からない。 $1.to_i(16)は、$1 に入っている文字列を 16進数とみなして整数値に直しているつもり。 x.chr は、数値 x を文字コードとして対応する文字に直しているつもり。 gsub は、正規表現に合致した部分を後続のブロックの中の $1 に入れて、結果に 置換しているつもり。 [test.rb] strJson = JSONを読み込んだ文字列; print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr } );
- 811 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 09:45:21.01 ID:MOu6VxbMr.net]
- そういうことならJSON.load使えば?
require 'json' JSON.load(fname) 愚直にやるならArray#packを使いましょう。 str.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}
- 812 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 10:47:42.33 ID:DiO6Np8S0.net]
- >>776
間違いがあった。正しくは、 print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr("UTF-8") } );
- 813 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 10:58:07.83 ID:DiO6Np8S0.net]
- "UTF-8"ではなくて、"UTF16-BE"か、"UTF16-LE"かも知れない。
試して上手く行くのを選んで欲しい。
- 814 名前:765 mailto:sage [2020/10/03(土) 11:41:59.34 ID:/wA+nWqo0.net]
- >>777
>>778 でも、正常に動きました。ありがとう。 JSON.load で、自動的に読めるようになるのが便利 require 'json' json = File.read( "input.json" ) p JSON.load( json ) p json.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')} print( json.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr("UTF-8") } );
- 815 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 12:38:03.63 ID:1IyBCfpu0.net]
- 👨👩👧👦1コードポイント1文字とは限らないし¥uの後は4桁とは限らないよね👨
- 816 名前:765 mailto:sage [2020/10/03(土) 13:09:59.31 ID:/wA+nWqo0.net]
- それなら、単純な正規表現では、ダメ。
実際に存在する、コードポイントを調べないといけない ひょっとしたら、JSON.load は、それに対応しているかも
- 817 名前:デフォルトの名無しさん mailto:sage [2020/10/04(日) 15:56:43.31 ID:P8Zgc9xR0.net]
- >>782
全ての文字を utf16 に変換してから、utf8に再変換すればいい気がする。 第
- 818 名前:一段階の変換で、ついでに \uXXXX の部分を 単純に 16BIT 整数に直せばいいはず。 []
- [ここ壊れてます]
- 819 名前:765 [2020/10/05(月) 01:16:19.79 ID:z7kgQPv30.net]
- \u は、4・8桁の2種類あるのか?
- 820 名前:765 mailto:sage [2020/10/05(月) 08:08:05.24 ID:z7kgQPv30.net]
- 👨👩👧👦 は、4つの文字が連結したような感じ
\uD83D\uDC68\u200D \uD83D\uDC69\u200D \uD83D\uDC67\u200D \uD83D\uDC66 \U0001F468\U0000200D \U0001F469\U0000200D \U0001F467\U0000200D \U0001F466 \u{1F468}\u{200D} \u{1F469}\u{200D} \u{1F467}\u{200D} \u{1F466}
- 821 名前:デフォルトの名無しさん [2020/10/05(月) 10:14:21.95 ID:H6rSrLtq0.net]
- もう ruby 関係無いだろ
良い加減消えろ 推奨スレ mevius.5ch.net/test/read.cgi/tech/1545032904/ mevius.5ch.net/test/read.cgi/tech/1593777227/
- 822 名前:デフォルトの名無しさん [2020/10/11(日) 00:59:43.22 ID:B+MSoWxK0.net]
- ( line, ary ), line_num
この( ) をなくすと、エラーになる TEXT = <<'EOT' a b EOT line_numbers = TEXT.each_line.with_object( [ ] ).with_index( 1 ) do | ( line, ary ), line_num | # 各行・蓄積変数・行番号 ary.push( line_num ) puts "#{ line_num } : #{ line }" end p line_numbers 出力 1 : a 2 : b [1, 2]
- 823 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 18:44:20.92 ID:vt3DXswMr.net]
- >>787
仕様通りです
- 824 名前:デフォルトの名無しさん [2020/10/13(火) 15:52:15.31 ID:Iy+8ZYjV0.net]
- 初心者です
Windows10でrubyのバージョンは2.4です gets.chompで日本語の文字列を入力しprintで出力したら文字化けするのですがどうしたら治りますか?
- 825 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 16:24:17.23 ID:y5Oy6HcC0.net]
- 漏れは、WSL, Ubuntu 18.04 を使っているけど、
Ruby Installer のMSYS 2 かい? 日本語入力が難しい ファイルか、端末の文字コードの設定だろう。 BOM 無しUTF-8(UTF-8N) ユーザー環境変数に、RUBYOPT を作って、--encoding=UTF-8 を設定するとか。 ただし、irb が、コマンドプロンプトでは使えなくなるので、 PowerShell しか使えなくなる VSCode の拡張機能、Code Runner で、 選択したコード片、またはファイル全体を実行できる これで、irbは使わなくてもよいけど、デバッグで、pry が使えなくなるかも。 pry は、irbを使っているのかも?
- 826 名前:788 mailto:sage [2020/10/13(火) 16:34:59.69 ID:y5Oy6HcC0.net]
- 2020-10-06
RubyInstaller 2.7.2-1, 2.6.6-2 and 2.5.8-2 released Windows では最新版を避けて、2.6.6-2 を使えば? 漏れは、Windows 10, WSL, Ubuntu 18.04 で、 VSCode の拡張機能、Remote WSL も使う Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、 ruby 2.6.6, node 12.16.2 を入れた yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。 これは、#!/bin/sh で始まるシェルスクリプト anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
- 827 名前:788 mailto:sage [2020/10/13(火) 16:44:54.23 ID:y5Oy6HcC0.net]
- Windows 版Ruby の日本語入力では、
コマンドプロンプトよりも、 PowerShell を使う方が良いのかも? 日本語出力は問題ない。 もし、フォントがかすれて表示されたら、バグっているけど
- 828 名前:788 mailto:sage [2020/10/13(火) 16:56:07.22 ID:y5Oy6HcC0.net]
- >>790
修正 >ユーザー環境変数に、RUBYOPT を作って、--encoding=UTF-8 を設定するとか。 >ただし、irb が、コマンドプロンプトでは使えなくなるので、 >PowerShell しか使えなくなる RUBYOPT に、--encoding=UTF-8 を設定すると、 コマンドプロンプト・PowerShell の両方で、irbが起動しなくなる C:/Ruby25-x64/lib/ruby/site_ruby/rbreadline.rb:6135:in `delete': invalid byte sequence in UTF-8 コマンドプロンプト・PowerShell の文字コードの設定で、使えるようになるのかな? 漏れは、VSCode, Code Runner を使っているから、irbを使ってい
- 829 名前:ネい []
- [ここ壊れてます]
- 830 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 17:01:18.58 ID:v339nyYs0.net]
- >>789
ridk use で切り替えられるから最新版を試すと良い このへんの問題も改善されてたはず
- 831 名前:788 mailto:sage [2020/10/13(火) 17:05:42.76 ID:y5Oy6HcC0.net]
- RUBYOPT に、--encoding=UTF-8 を設定すると、
コマンドプロンプト・PowerShell の文字コードの設定で、 chcp 65001 と入力したが、どちらもエラーで、irbが起動しない でも、irbを使わなければ、 RUBYOPT に設定するのは、便利なんだけど
- 832 名前:788 mailto:sage [2020/10/13(火) 17:09:23.25 ID:y5Oy6HcC0.net]
- >>794
ほう
- 833 名前:デフォルトの名無しさん [2020/10/13(火) 17:24:55.62 ID:Iy+8ZYjV0.net]
- みんなありがとうございます
環境変数って編集したら再起動しないといけないとかありますか?
- 834 名前:788 mailto:sage [2020/10/13(火) 17:43:39.31 ID:y5Oy6HcC0.net]
- OS の再起動は、いらないと思う。
Ruby の再起動だけで良いと思う PowerShell で、以下を入力して、正しく設定されたか、確認してみ ls env:
- 835 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 19:42:36.62 ID:MMOmBqSMr.net]
- pryがirb使ってるわけないじゃん。(「irb使う」ってのもよくわからんが)
readlineのライブラリがマルチバイト未対応なだけだから 日本語扱うならnoreadlineで起動すればいいよ。
- 836 名前:788 mailto:sage [2020/10/14(水) 05:06:57.79 ID:z5Uy/Vd30.net]
- pry, rails console を起動すると、irb が起動されるのかな? と思っていた。
画面が似てるでしょ? 例えば、Windows 10, WSL, Ubuntu 18.04 を起動すると、 コマンドプロンプトと同じ画面が起動される そういうのと同じなのかな? と思って
- 837 名前:デフォルトの名無しさん [2020/10/14(水) 08:31:15.20 ID:kgj1R+5V0.net]
- RUBYPORT変えてやってみたけどだめでした.
コマンドプロンプトとPowerShellは両方文字化けします. bash on Windowsだと問題なく動きます. 学校で配布された教材がコマンドプロンプトしか使っておらず, 与えられたサンプルプログラムはバージョン2.4以下じゃないと動かないらしいです. 留年しそう.
- 838 名前:788 mailto:sage [2020/10/14(水) 09:58:02.17 ID:z5Uy/Vd30.net]
- >RUBYPORT
RUBYOPT だよ。 ユーザー環境変数に、RUBYOPT に、--encoding=UTF-8 を設定する PowerShell で、以下を入力して、正しく設定されたか、確認してみ ls env: irb さえ使わなければ、文字化けしないはず! たぶん、ファイルの設定だろう。 sjis・CP932 じゃなく、BOM 無しUTF-8(UTF-8N) それで、PowerShell から「ruby a.rb」などで実行できるはず。 または、VSCode のCode Runner でも出来る。 ただし、Code-runnerの設定ファイルで、File Directory As Cwd をチェックしておく
- 839 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 10:01:17.73 ID:rQGDkRcC0.net]
- 学校での話なら、友達か先生かに聞けよ。
- 840 名前:788 mailto:sage [2020/10/14(水) 10:07:17.92 ID:z5Uy/Vd30.net]
- ただし、RUBYOPT に、--encoding=UTF-8 を設定した場合、
chcp はデフォルトの、CP932 のままにしておく! 65001 にしない コマンドプロンプト・PowerShell で、chcp と入力してみ
- 841 名前:788 mailto:sage [2020/10/14(水) 10:21:16.97 ID:z5Uy/Vd30.net]
- >>804
修正 >chcp はデフォルトの、CP932 のままにしておく! >65001 にしない RUBYOPT に、--encoding=UTF-8 を設定した場合、 CP932/65001 のどちらでも、文字化けしない。正常に動く
- 842 名前:デフォルトの名無しさん [2020/10/14(水) 11:42:15.98 ID:kgj1R+5V0.net]
- >>805
ごめん!RUBYOPT変えた! ファイルの設定ってプログラム書いてるテキストファイルの設定ってことですか?どうやって変えるのでしょうか? 一応Rubyopt変えただけだと文字化けしちゃってchcp 65001って実行してプログラム起動させたらコマンドプロンプトは落ちちゃった. PowerShellはもう日本語全部文字化けしちゃった
- 843 名前:788 mailto:sage [2020/10/14(水) 12:29:05.96 ID:z5Uy/Vd30.net]
- たぶん、エディタの文字コードの設定メニューあたりから、
BOM 無しUTF-8(UTF-8N)に設定する 一番よいのは、VSCode で、Code Runner を使う
- 844 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 19:15:13.60 ID:Y0U/d7P+r.net]
- >>801
noreadlineで起動すればいいって言ってんじゃん
- 845 名前:788 mailto:sage [2020/10/15(木) 06:56:58.31 ID:7eWumHpU0.net]
- RUBYOPT に、--encoding=UTF-8 を設定すると、
irb --noreadline で起動しても、エラーになる
- 846 名前:788 mailto:sage [2020/10/15(木) 07:13:17.57 ID:7eWumHpU0.net]
- RUBYOPT に、--encoding=UTF-8 を設定すると、
irb --noreadline irb -E UTF-8 irb -E Shift_JIS で起動しても、エラーになる
- 847 名前:788 mailto:sage [2020/10/15(木) 07:32:54.02 ID:7eWumHpU0.net]
- Windows では、RUBYOPT の、--encoding=UTF-8 と、irb は両立しない
irb を捨てて、VSCode のCode Runner を使う方がよい。 これで、選択したコード片、またはファイル全体を実行できる その代わり、pry, rails console が使えなくなるかも? よく分からないけど
- 848 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 14:56:39.44 ID:FYvAP3o60.net]
- powershellじゃなくてレガシーコンソールのコマンドプロンプトを使わないとダメだったはず
- 849 名前:788 mailto:sage [2020/10/15(木) 15:46:22.07 ID:7eWumHpU0.net]
- >>810
は、PowerShell・コマンドプロンプト
- 850 名前:フどちらでも、エラーになる []
- [ここ壊れてます]
- 851 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 14:09:06.36 ID:cX3MrjsP0.net]
- 4,000行ほどのRubyプログラムをnode.jsに乗り換えようと思ってましたが
やっぱりRubyの方が便利な気がしてきました。 JSはローカル変数がちゃんと作れることやapplyが使えること、ifブロックやコメントの書き方などが 好きだったんですが元々ブラウザ用だったせいかファイル関連が非同期推奨ですし stdoutとfileの違いもちゃんと意識しないといけなくなっているようです。 ファイル関連のライブラリも非同期のみの対応の場合も多いようで、Rubyに比べると 使い勝手に問題が有りそうです。 スクリプト言語の目的は簡単にプログラムしたいことですが、node.jsよりRubyの方が ファイル関連は簡単なようです。
- 852 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 01:39:25.66 ID:xeOKOt4d0.net]
- Rubyはちゃんとしたブロック変数が作りにくいことが欠点だと思っていたのですが
逆にnode.jsの場合、グローバル変数とローカル(ブロック)変数の違いが 最初の定義時にlet(またはvar)を書くかどうかだけで区別されており、 それはそれで危険な場面もあるように気付きました。 Rubyの場合は、先頭が$で始まる変数はグローバルになり、大文字で始まる変数は グローバル定数になりますので、有る意味では安全ですし、命名規則としても 全てのプログラマで共通になりソースの分かり易さに貢献している可能性があります。 node.jsの場合、let文を書き忘れただけでグローバル変数になるのは原因不明の バグが入り込む可能性を増やしている可能性があります。 また、Rubyは、system関数が便利です。 実際に使用してみた感想としてRubyは全体的に安定している印象を持ちましたが、 node.jsは、インストール時の一番大事な環境変数ですら自動設定されておらず、 プログラマー以外の人にプログラムを配布することは絶望的です。
- 853 名前:デフォルトの名無しさん [2020/10/18(日) 18:18:43.72 ID:WlQf1Fni0.net]
- >最初の定義時に、let(またはvar)を書くかどうかだけで区別されており
VSCode ESLint とかで、チェックできるのでは? Windows でも、50ms 以上掛かる、IO は非同期を推奨してるから、書きにくい でも、Ruby on Rails 6 では、デフォルトで、Node.js, Webpack を使う ただし、GUI はHTML, CSS/SASS, Bootstrap, JavaScript(JS)だけど、 サーバー側言語には、Rubyを使う Rubyには最初から、C と同様、関数スコープがあった。 ES2015 で、JS にも出来たのかな?
- 854 名前:814 mailto:sage [2020/10/18(日) 18:30:15.98 ID:WlQf1Fni0.net]
- YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる この2つ以外は、出てこない。 JavaScript, Python から始めろって絶対に言わない! Python から始めてはいけないって言ってる。 「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則】 KENTA は、10言語以上知っていて、 登録者数5万人、月千円のサロンが、2千人もいるから、 十分にヒアリングしてるし、どの言語が挫折確率が高いか、よく分かっている
- 855 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 18:36:30.11 ID:xWXtsYNK0.net]
- KENTA「Rubyに拘泥する奴は伸びない。さっさと他の言語に進め」
- 856 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 19:10:33.77 ID:Ie2s5K3J0.net]
- >>816
Cは、関数スコープというより、ブロックスコープ。 Rubyとは違う。
- 857 名前:デフォルトの名無しさん [2020/10/18(日) 20:35:28.25 ID:2aU6LfzH0.net]
- KENTA「C++を始めるべき」
- 858 名前:デフォルトの名無しさん mailto:sage [2020/10/23(金) 17:32:28.92 ID:iE1/WHvK0.net]
- VSCodeなどにHTMLのLivePreview機能がありますが、
erbのLivePreview対応
- 859 名前:アプリケーションってありますか? []
- [ここ壊れてます]
- 860 名前:デフォルトの名無しさん [2020/10/24(土) 08:32:09.72 ID:PENdR3tu0.net]
- VSCode の拡張機能のLive Server では、Web Extension で、
PHP で作る動的ページも表示してるけど、ERB のやり方は分からない https://chrome.google.com/webstore/detail/live-server-web-extension/fiegdmejfepffgpnejdinekhfieaogmj?hl=pt-BR Rails 6 なら、webpack-dev-server が標準
- 861 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 14:35:22.81 ID:rBYTjNf90.net]
- >>822
ありがとうございます webpack-dev-server 調べてみます
- 862 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:01:22.94 ID:ehonUome0.net]
- number = "0.072953"
float_number = number.to_f bigdecimal_number = number.to_d (1000 / float_number) # => 13707.455485038312 (1000 / bigdecimal_number) # => 0.13707455485038e5 1000.div(float_number) # => 13707 1000.div(bigdecimal_number) # => 13707 1000.fdiv(float_number) # => 13707.455485038312 1000.fdiv(bigdecimal_number) # => 2.22360747e-314 なぜ 1000.fdiv(bigdecimal_number) のときは 13707 台ではなく 2.2 e-314 になるの? fdivの引数にdecimalは期待されていない?
- 863 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:05:37.26 ID:xQuuF55sr.net]
- どっちも変わらん
p 100.fdiv(float_number) # => 1370.745548503831 p 100.fdiv(biddecimal_number) # => 1370.745548504
- 864 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:19:23.51 ID:6XNLJEFJ0.net]
- biddecimalwwwww
- 865 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:23:11.77 ID:ehonUome0.net]
- ありがとう
使ってるrubyのバージョンが低すぎるみたいだ
- 866 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:56:38.85 ID:/elpRfls0.net]
- rubyはバージョン上げると前動いたコードが動かないからな。
そこらへんの互換性はjs>>php>>>python>>>rubyみたいな感じ。 行き当たりバッタリで以前の仕様気にせず変える。
- 867 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 10:48:16.22 ID:M7kzCKlu0.net]
- >>828
phpは知らんけど js >> ruby >>> python やろ railsと違ってruby自体は後方互換性かなり高いぞ CLI系なら10年以上前のものでもだいたい問題なく使える pythonも言語自体は後方互換性高いが バージョンごとにdeprecated/removedになるAPIはrubyよりずっと多い それもあってメジャーなライブラリの新バージョン対応は遅くて 半年くらい待たないと言語の新しいバージョンを使えないし 言語の新バージョン + ライブラリの旧バージョンの組み合わせだと 動かなくなる率が高くてライブラリのAPI変更にも対応しないといけない
- 868 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 11:02:35.93 ID:/elpRfls0.net]
- 確かにpythonは2系と3系は隔絶してるけどマイナーバージョンアップでブッ壊れるのはrubyだろ
- 869 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 11:36:06.65 ID:M7kzCKlu0.net]
- >>830
例えば?
- 870 名前:デフォルトの名無しさん [2020/10/25(日) 12:12:32.16 ID:usbfp6+yF.net]
- C最強ですね判ります
- 871 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 13:00:13.81 ID:vQGWPLvqr.net]
- マイナーバージョンアップで後方互換性がぶっ壊れた例
俺も気になるんで教えて
- 872 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 13:25:50.19 ID:M7kzCKlu0.net]
- >>829
よく考えるとjsもクライアントサイドだけじゃなく サーバーサイドで考えると動かなくなることあるな rubyやpythonに比べて新陳代謝が激しくて 10年使い続けたりしないから気にならないだけかも
- 873 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 17:55:59.08 ID:y6I5Oh6cM.net]
- >>831
リリースノートでも読め。 標準モジュールの変更とか。
- 874 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 18:04:13.90 ID:MTjKoQS00.net]
- JIS規格化されてる
- 875 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 18:42:02.16 ID:M7kzCKlu0.net]
- >>835
エアプでしたか pythonと違ってrubyでは「標準モジュール」という言い方はしないよ
- 876 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 19:16:39.17 ID:y6I5Oh6cM.net]
- >>837
んな言葉の違いはどうでも。w ま、違いにあたらなければどうということはないから、
- 877 名前:キきにしろ。
実際にあたった人や、心配性にはツラい言語。 3以降は、絶対にないレベルにしてほしいものだ。 できればPerlレベルに。 [] - [ここ壊れてます]
- 878 名前:デフォルトの名無しさん [2020/10/26(月) 15:04:44.51 ID:EltRWJ/HF.net]
- Ruby が C++ を Hate してるのはホント良く判る
- 879 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 16:25:50.97 ID:NTmfRHBrM.net]
- >>838
Perlもエアプかいw 駱駝道で極楽浄土に行けるといいネ
- 880 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 17:52:56.78 ID:yxMoBvg5M.net]
- >>840
今やPerl6は存在しないことを知らないの?w
- 881 名前:デフォルトの名無しさん [2020/10/28(水) 21:30:30.88 ID:H1Ljm7vl0.net]
- >>2
リファクタリング:Rubyエディション (日本語) 単行本、2020/3、 Jay Fields/Shane Harvie/Martin Fowler/Kent Beck/長尾 高弘 Martin Fowlerの名著『リファクタリング』のRuby対応全面改訂版が、ついに復刊! Kent Beck は、eXtreme Programming(XP)の提唱者 Java 版をRubyへ書き直したもの。 2010年の復刊。8,800円!
- 882 名前:デフォルトの名無しさん [2020/10/31(土) 08:20:00.50 ID:B8uNhuq7M.net]
- ruby初心者です。
以下のNodeクラスにEnumerable moduleをincludeできるようなeachメソッドを 定義することはできますか。 class Node attr_accessor :data, :next def initialize(data) @data = data @next = nil end end
- 883 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 14:36:23.15 ID:zTfIs5nt0.net]
- 「Ruby Enumerable 実装」で検索!
Rubyで簡潔にeachなどの機能を持つクラスを実装する方法 https://ja.stackoverflow.com/questions/1593/ruby%E3%81%A7%E7%B0%A1%E6%BD%94%E3%81%ABeach%E3%81%AA%E3%81%A9%E3%81%AE%E6%A9%9F%E8%83%BD%E3%82%92%E6%8C%81%E3%81%A4%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95 Ruby: EnumerableをincludeするよりEnumeratorを返そう https://techracho.bpsinc.jp/hachi8833/2018_06_29/57698
- 884 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 15:21:36.29 ID:OmKC8x+Wd.net]
- >>843
https://ideone.com/IjTOn4
- 885 名前:デフォルトの名無しさん [2020/11/01(日) 00:02:35.61 ID:X6j+EvTNM.net]
- >>844 さん
特に、>>845 さん 実装を教えていただいて、ありがとうございます。 https://ideone.com/IjTOn4に記載されていた実装は 私では考えつくことができませんでした。 何を勉強したら書けるようになるのか、悩みます。 ちなみにですが、私の考えたeachの実装は以下のようなものです。 class Node def each while self.next != nil yield self.data self.self.next end end end (でも、私のeachは動作しません。)
- 886 名前:デフォルトの名無しさん [2020/11/01(日) 00:07:41.13 ID:X6j+EvTNM.net]
- >> 844
self.self.nextは、self = self.nextの誤記です。
- 887 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 02:18:36.47 ID:cH+o+Znx0.net]
- Mix-in とは、何かのモジュールをinclude すると、
それが継承チェーンの親の所へ入ってくるから、 そのモジュール内の関数が使えるようになる 例えば、include Enumerable とすると、 自クラスで、each を定義してあれば、Enumerable内のすべての関数が使える Array も、Enumerableをインクルードしているから、 Array内の関数と、Enumerable内の関数が使える つまり普通に、複数のインスタンスを配列に入れておけば、 Array・Enumerable内の関数が使える ほとんど、この2つのクラス内の関数ばかり
- 888 名前:を使うから、
どういう事ができるか、見ておいた方がよい また、eachを定義せずに、Enumerableの機能を使うには、Enumerator を使う。 eachは内部イタレータで、Enumeratorは外部イタレータ 初心者はイタレータなど考えず、普通に配列内に入れておけばよい デザインパターンなら、この本が良い。 改訂2版 Ruby逆引きハンドブック、2018 [] - [ここ壊れてます]
- 889 名前:846 [2020/11/02(月) 08:31:13.28 ID:cH+o+Znx0.net]
- 「Ruby each 実装」「ruby イテレータ 実装」で検索!
内部・外部イテレータの違いも、調べてみれば? ruby eachの実装 https://teratail.com/questions/117974
- 890 名前:デフォルトの名無しさん [2020/11/03(火) 09:41:15.68 ID:XEwmRHqvp.net]
- >>848さん
アドバイスありがとうございました。 示していただいたキーワードを使ってネットの情報を読み漁ってました。 rubyに関する基本的な文法知識も弱いのですが、デザインパターンという 考え方?思想?もわかっていないので、文法の習得と並行して勉強が必要だと 感じました。修業します。
- 891 名前:846 mailto:sage [2020/11/03(火) 22:57:00.33 ID:pWieQE6j0.net]
- Mix-in の例で、include Enumerable して、
Enumerableモジュール内の関数が使えるように、 自クラスで、each を実装しましょうとか、 こういうのを初心者向けで見たことがない ほとんど、こういう事をやってる人は、いないと思う なぜかというと、Array は、Enumerableをインクルードしているから、 配列に入れれば、何でもできるから だから、そもそも、どうしてこういう事をしようと思ったのか、疑問に思う プログラミングのお題スレの問題でも、 すべて、Array, Hash, Enumerableで解ける
- 892 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 23:15:09.60 ID:eTFEu/to0.net]
- >>851
遅延評価
- 893 名前:デフォルトの名無しさん [2020/11/04(水) 10:08:06.70 ID:wF8lqQTTF.net]
- Ruby、信者は、おことわり
- 894 名前:846 mailto:sage [2020/11/04(水) 23:31:34.08 ID:oOk5Pqvr0.net]
- 一部のメソッドで、遅延評価できる
instance method Enumerable#lazy lazy -> Enumerator::Lazy map/collect, flat_map/collect_concat select/find_all reject grep take, take_while drop, drop_while 一貫性のため、ブロックを渡さないケースのみlazy zip, cycle
- 895 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 23:51:12.04 ID:lTVc+I7v0.net]
- Enumerableは高階関数とともに脱初心者の一番の目安
この2つをパパっと作って使えるようになれば初心者は卒業
- 896 名前:846 mailto:sage [2020/11/05(木) 23:53:13.53 ID:lCe7ZMVj0.net]
- Ruby の強みは、
Array, Hash, Enumerable, Enumerator の豊富なメソッドを、 メソッドチェーンでつなげていくプログラミング どういうメソッドがあるのか、じっくり見ておくべき!
- 897 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 23:50:43.02 ID:DktN1QwS0.net]
- TIOBE Index、perlより下じゃん
- 898 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 03:09:45.71 ID:YnyAcD/m0.net]
- とうとうperlより下になったかw
誕生経緯w存在意義が…w
- 899 名前:デフォルトの名無しさん [2020/11/08(日) 10:17:52.02 ID:WJSuSySW0.net]
- 助成金ひっぱりんごビジネス
- 900 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 10:46:31.03 ID:msYgn7TJM.net]
- エンベデッド詐欺
ストリーム詐欺
- 901 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 13:35:54.75 ID:P6MM9gKe0.net]
- 問題 Rubyを開発したのはだれか
答え 2ちゃんねる開発者でもあるひろゆき 根拠 https://programmercollege.jp/column/16456/
- 902 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 16:28:40.45 ID:2D8TgavPM.net]
- もうすっかりマイナー言語だな
|

|