[過去ログ]
Ruby 初心者スレッド Part 66 (1002レス)
Ruby 初心者スレッド Part 66 http://mevius.5ch.net/test/read.cgi/tech/1578068134/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
775: デフォルトの名無しさん (オッペケ Sr47-VYpw) [sage] 2020/10/03(土) 09:45:21.01 ID:MOu6VxbMr そういうことならJSON.load使えば? require 'json' JSON.load(fname) 愚直にやるならArray#packを使いましょう。 str.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')} http://mevius.5ch.net/test/read.cgi/tech/1578068134/775
776: デフォルトの名無しさん (ワッチョイ 3361-VW09) [sage] 2020/10/03(土) 10:47:42.33 ID:DiO6Np8S0 >>774 間違いがあった。正しくは、 print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr("UTF-8") } ); http://mevius.5ch.net/test/read.cgi/tech/1578068134/776
777: デフォルトの名無しさん (ワッチョイ 3361-VW09) [sage] 2020/10/03(土) 10:58:07.83 ID:DiO6Np8S0 "UTF-8"ではなくて、"UTF16-BE"か、"UTF16-LE"かも知れない。 試して上手く行くのを選んで欲しい。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/777
778: 765 (ワッチョイ d32c-IT45) [sage] 2020/10/03(土) 11:41:59.34 ID:/wA+nWqo0 >>775 >>776 でも、正常に動きました。ありがとう。 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") } ); http://mevius.5ch.net/test/read.cgi/tech/1578068134/778
779: デフォルトの名無しさん (ワッチョイ ff01-ZVjj) [sage] 2020/10/03(土) 12:38:03.63 ID:1IyBCfpu0 👨👩👧👦1コードポイント1文字とは限らないし¥uの後は4桁とは限らないよね👨 http://mevius.5ch.net/test/read.cgi/tech/1578068134/779
780: 765 (ワッチョイ d32c-IT45) [sage] 2020/10/03(土) 13:09:59.31 ID:/wA+nWqo0 それなら、単純な正規表現では、ダメ。 実際に存在する、コードポイントを調べないといけない ひょっとしたら、JSON.load は、それに対応しているかも http://mevius.5ch.net/test/read.cgi/tech/1578068134/780
781: デフォルトの名無しさん (ワッチョイ 3361-VW09) [sage] 2020/10/04(日) 15:56:43.31 ID:P8Zgc9xR0 >>780 全ての文字を utf16 に変換してから、utf8に再変換すればいい気がする。 第一段階の変換で、ついでに \uXXXX の部分を 単純に 16BIT 整数に直せばいいはず。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/781
782: 765 (ワッチョイ d32c-IT45) [] 2020/10/05(月) 01:16:19.79 ID:z7kgQPv30 \u は、4・8桁の2種類あるのか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/782
783: 765 (ワッチョイ d32c-IT45) [sage] 2020/10/05(月) 08:08:05.24 ID:z7kgQPv30 👨👩👧👦 は、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} http://mevius.5ch.net/test/read.cgi/tech/1578068134/783
784: デフォルトの名無しさん (ワッチョイ b37c-N+m6) [] 2020/10/05(月) 10:14:21.95 ID:H6rSrLtq0 もう ruby 関係無いだろ 良い加減消えろ 推奨スレ mevius.5ch.net/test/read.cgi/tech/1545032904/ mevius.5ch.net/test/read.cgi/tech/1593777227/ http://mevius.5ch.net/test/read.cgi/tech/1578068134/784
785: デフォルトの名無しさん (ワッチョイ 672c-JAxH) [] 2020/10/11(日) 00:59:43.22 ID:B+MSoWxK0 ( 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] http://mevius.5ch.net/test/read.cgi/tech/1578068134/785
786: デフォルトの名無しさん (オッペケ Sr03-EsYS) [sage] 2020/10/11(日) 18:44:20.92 ID:vt3DXswMr >>785 仕様通りです http://mevius.5ch.net/test/read.cgi/tech/1578068134/786
787: デフォルトの名無しさん (ワッチョイ c308-8Ti4) [] 2020/10/13(火) 15:52:15.31 ID:Iy+8ZYjV0 初心者です Windows10でrubyのバージョンは2.4です gets.chompで日本語の文字列を入力しprintで出力したら文字化けするのですがどうしたら治りますか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/787
788: デフォルトの名無しさん (ワッチョイ 672c-JAxH) [sage] 2020/10/13(火) 16:24:17.23 ID:y5Oy6HcC0 漏れは、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を使っているのかも? http://mevius.5ch.net/test/read.cgi/tech/1578068134/788
789: 788 (ワッチョイ 672c-JAxH) [sage] 2020/10/13(火) 16:34:59.69 ID:y5Oy6HcC0 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 などを同じ使い方で、統一的に扱える http://mevius.5ch.net/test/read.cgi/tech/1578068134/789
790: 788 (ワッチョイ 672c-JAxH) [sage] 2020/10/13(火) 16:44:54.23 ID:y5Oy6HcC0 Windows 版Ruby の日本語入力では、 コマンドプロンプトよりも、 PowerShell を使う方が良いのかも? 日本語出力は問題ない。 もし、フォントがかすれて表示されたら、バグっているけど http://mevius.5ch.net/test/read.cgi/tech/1578068134/790
791: 788 (ワッチョイ 672c-JAxH) [sage] 2020/10/13(火) 16:56:07.22 ID:y5Oy6HcC0 >>788 修正 >ユーザー環境変数に、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を使っていない http://mevius.5ch.net/test/read.cgi/tech/1578068134/791
792: デフォルトの名無しさん (ワッチョイ ee7d-gNG7) [sage] 2020/10/13(火) 17:01:18.58 ID:v339nyYs0 >>787 ridk use で切り替えられるから最新版を試すと良い このへんの問題も改善されてたはず http://mevius.5ch.net/test/read.cgi/tech/1578068134/792
793: 788 (ワッチョイ 672c-JAxH) [sage] 2020/10/13(火) 17:05:42.76 ID:y5Oy6HcC0 RUBYOPT に、--encoding=UTF-8 を設定すると、 コマンドプロンプト・PowerShell の文字コードの設定で、 chcp 65001 と入力したが、どちらもエラーで、irbが起動しない でも、irbを使わなければ、 RUBYOPT に設定するのは、便利なんだけど http://mevius.5ch.net/test/read.cgi/tech/1578068134/793
794: 788 (ワッチョイ 672c-JAxH) [sage] 2020/10/13(火) 17:09:23.25 ID:y5Oy6HcC0 >>792 ほう http://mevius.5ch.net/test/read.cgi/tech/1578068134/794
795: デフォルトの名無しさん (ワッチョイ c308-8Ti4) [] 2020/10/13(火) 17:24:55.62 ID:Iy+8ZYjV0 みんなありがとうございます 環境変数って編集したら再起動しないといけないとかありますか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/795
796: 788 (ワッチョイ 672c-JAxH) [sage] 2020/10/13(火) 17:43:39.31 ID:y5Oy6HcC0 OS の再起動は、いらないと思う。 Ruby の再起動だけで良いと思う PowerShell で、以下を入力して、正しく設定されたか、確認してみ ls env: http://mevius.5ch.net/test/read.cgi/tech/1578068134/796
797: デフォルトの名無しさん (オッペケ Sr03-EsYS) [sage] 2020/10/13(火) 19:42:36.62 ID:MMOmBqSMr pryがirb使ってるわけないじゃん。(「irb使う」ってのもよくわからんが) readlineのライブラリがマルチバイト未対応なだけだから 日本語扱うならnoreadlineで起動すればいいよ。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/797
798: 788 (ワッチョイ 5b2c-F9zC) [sage] 2020/10/14(水) 05:06:57.79 ID:z5Uy/Vd30 pry, rails console を起動すると、irb が起動されるのかな? と思っていた。 画面が似てるでしょ? 例えば、Windows 10, WSL, Ubuntu 18.04 を起動すると、 コマンドプロンプトと同じ画面が起動される そういうのと同じなのかな? と思って http://mevius.5ch.net/test/read.cgi/tech/1578068134/798
799: デフォルトの名無しさん (ワッチョイ 2b08-TJC9) [] 2020/10/14(水) 08:31:15.20 ID:kgj1R+5V0 RUBYPORT変えてやってみたけどだめでした. コマンドプロンプトとPowerShellは両方文字化けします. bash on Windowsだと問題なく動きます. 学校で配布された教材がコマンドプロンプトしか使っておらず, 与えられたサンプルプログラムはバージョン2.4以下じゃないと動かないらしいです. 留年しそう. http://mevius.5ch.net/test/read.cgi/tech/1578068134/799
800: 788 (ワッチョイ 5b2c-F9zC) [sage] 2020/10/14(水) 09:58:02.17 ID:z5Uy/Vd30 >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 をチェックしておく http://mevius.5ch.net/test/read.cgi/tech/1578068134/800
801: デフォルトの名無しさん (ワッチョイ 4b33-bACO) [sage] 2020/10/14(水) 10:01:17.73 ID:rQGDkRcC0 学校での話なら、友達か先生かに聞けよ。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/801
802: 788 (ワッチョイ 5b2c-F9zC) [sage] 2020/10/14(水) 10:07:17.92 ID:z5Uy/Vd30 ただし、RUBYOPT に、--encoding=UTF-8 を設定した場合、 chcp はデフォルトの、CP932 のままにしておく! 65001 にしない コマンドプロンプト・PowerShell で、chcp と入力してみ http://mevius.5ch.net/test/read.cgi/tech/1578068134/802
803: 788 (ワッチョイ 5b2c-n+7I) [sage] 2020/10/14(水) 10:21:16.97 ID:z5Uy/Vd30 >>802 修正 >chcp はデフォルトの、CP932 のままにしておく! >65001 にしない RUBYOPT に、--encoding=UTF-8 を設定した場合、 CP932/65001 のどちらでも、文字化けしない。正常に動く http://mevius.5ch.net/test/read.cgi/tech/1578068134/803
804: デフォルトの名無しさん (ワッチョイ 2b08-TJC9) [] 2020/10/14(水) 11:42:15.98 ID:kgj1R+5V0 >>803 ごめん!RUBYOPT変えた! ファイルの設定ってプログラム書いてるテキストファイルの設定ってことですか?どうやって変えるのでしょうか? 一応Rubyopt変えただけだと文字化けしちゃってchcp 65001って実行してプログラム起動させたらコマンドプロンプトは落ちちゃった. PowerShellはもう日本語全部文字化けしちゃった http://mevius.5ch.net/test/read.cgi/tech/1578068134/804
805: 788 (ワッチョイ 5b2c-F9zC) [sage] 2020/10/14(水) 12:29:05.96 ID:z5Uy/Vd30 たぶん、エディタの文字コードの設定メニューあたりから、 BOM 無しUTF-8(UTF-8N)に設定する 一番よいのは、VSCode で、Code Runner を使う http://mevius.5ch.net/test/read.cgi/tech/1578068134/805
806: デフォルトの名無しさん (オッペケ Sr0f-7/+M) [sage] 2020/10/14(水) 19:15:13.60 ID:Y0U/d7P+r >>799 noreadlineで起動すればいいって言ってんじゃん http://mevius.5ch.net/test/read.cgi/tech/1578068134/806
807: 788 (ワッチョイ 5b2c-F9zC) [sage] 2020/10/15(木) 06:56:58.31 ID:7eWumHpU0 RUBYOPT に、--encoding=UTF-8 を設定すると、 irb --noreadline で起動しても、エラーになる http://mevius.5ch.net/test/read.cgi/tech/1578068134/807
808: 788 (ワッチョイ 5b2c-F9zC) [sage] 2020/10/15(木) 07:13:17.57 ID:7eWumHpU0 RUBYOPT に、--encoding=UTF-8 を設定すると、 irb --noreadline irb -E UTF-8 irb -E Shift_JIS で起動しても、エラーになる http://mevius.5ch.net/test/read.cgi/tech/1578068134/808
809: 788 (ワッチョイ 5b2c-F9zC) [sage] 2020/10/15(木) 07:32:54.02 ID:7eWumHpU0 Windows では、RUBYOPT の、--encoding=UTF-8 と、irb は両立しない irb を捨てて、VSCode のCode Runner を使う方がよい。 これで、選択したコード片、またはファイル全体を実行できる その代わり、pry, rails console が使えなくなるかも? よく分からないけど http://mevius.5ch.net/test/read.cgi/tech/1578068134/809
810: デフォルトの名無しさん (ワッチョイ bb5f-nsiV) [sage] 2020/10/15(木) 14:56:39.44 ID:FYvAP3o60 powershellじゃなくてレガシーコンソールのコマンドプロンプトを使わないとダメだったはず http://mevius.5ch.net/test/read.cgi/tech/1578068134/810
811: 788 (ワッチョイ 5b2c-F9zC) [sage] 2020/10/15(木) 15:46:22.07 ID:7eWumHpU0 >>808 は、PowerShell・コマンドプロンプトのどちらでも、エラーになる http://mevius.5ch.net/test/read.cgi/tech/1578068134/811
812: デフォルトの名無しさん (ワッチョイ 7b61-8ZN/) [sage] 2020/10/17(土) 14:09:06.36 ID:cX3MrjsP0 4,000行ほどのRubyプログラムをnode.jsに乗り換えようと思ってましたが やっぱりRubyの方が便利な気がしてきました。 JSはローカル変数がちゃんと作れることやapplyが使えること、ifブロックやコメントの書き方などが 好きだったんですが元々ブラウザ用だったせいかファイル関連が非同期推奨ですし stdoutとfileの違いもちゃんと意識しないといけなくなっているようです。 ファイル関連のライブラリも非同期のみの対応の場合も多いようで、Rubyに比べると 使い勝手に問題が有りそうです。 スクリプト言語の目的は簡単にプログラムしたいことですが、node.jsよりRubyの方が ファイル関連は簡単なようです。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/812
813: デフォルトの名無しさん (ワッチョイ 7b61-8ZN/) [sage] 2020/10/18(日) 01:39:25.66 ID:xeOKOt4d0 Rubyはちゃんとしたブロック変数が作りにくいことが欠点だと思っていたのですが 逆にnode.jsの場合、グローバル変数とローカル(ブロック)変数の違いが 最初の定義時にlet(またはvar)を書くかどうかだけで区別されており、 それはそれで危険な場面もあるように気付きました。 Rubyの場合は、先頭が$で始まる変数はグローバルになり、大文字で始まる変数は グローバル定数になりますので、有る意味では安全ですし、命名規則としても 全てのプログラマで共通になりソースの分かり易さに貢献している可能性があります。 node.jsの場合、let文を書き忘れただけでグローバル変数になるのは原因不明の バグが入り込む可能性を増やしている可能性があります。 また、Rubyは、system関数が便利です。 実際に使用してみた感想としてRubyは全体的に安定している印象を持ちましたが、 node.jsは、インストール時の一番大事な環境変数ですら自動設定されておらず、 プログラマー以外の人にプログラムを配布することは絶望的です。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/813
814: デフォルトの名無しさん (ワッチョイ 5b2c-UsEC) [] 2020/10/18(日) 18:18:43.72 ID:WlQf1Fni0 >最初の定義時に、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 にも出来たのかな? http://mevius.5ch.net/test/read.cgi/tech/1578068134/814
815: 814 (ワッチョイ 5b2c-UsEC) [sage] 2020/10/18(日) 18:30:15.98 ID:WlQf1Fni0 YouTube で有名な雑食系エンジニア・KENTA は、 初心者が進む道を、サーバー側言語のRuby → Go を王道としてる この2つ以外は、出てこない。 JavaScript, Python から始めろって絶対に言わない! Python から始めてはいけないって言ってる。 「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則】 KENTA は、10言語以上知っていて、 登録者数5万人、月千円のサロンが、2千人もいるから、 十分にヒアリングしてるし、どの言語が挫折確率が高いか、よく分かっている http://mevius.5ch.net/test/read.cgi/tech/1578068134/815
816: デフォルトの名無しさん (ワッチョイ db4e-T8Cx) [sage] 2020/10/18(日) 18:36:30.11 ID:xWXtsYNK0 KENTA「Rubyに拘泥する奴は伸びない。さっさと他の言語に進め」 http://mevius.5ch.net/test/read.cgi/tech/1578068134/816
817: デフォルトの名無しさん (ワッチョイ fb33-bACO) [sage] 2020/10/18(日) 19:10:33.77 ID:Ie2s5K3J0 >>814 Cは、関数スコープというより、ブロックスコープ。 Rubyとは違う。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/817
818: デフォルトの名無しさん (ワッチョイ 6b01-ntOo) [] 2020/10/18(日) 20:35:28.25 ID:2aU6LfzH0 KENTA「C++を始めるべき」 http://mevius.5ch.net/test/read.cgi/tech/1578068134/818
819: デフォルトの名無しさん (ワッチョイ 2922-9Kcm) [sage] 2020/10/23(金) 17:32:28.92 ID:iE1/WHvK0 VSCodeなどにHTMLのLivePreview機能がありますが、 erbのLivePreview対応アプリケーションってありますか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/819
820: デフォルトの名無しさん (ワッチョイ 052c-9Kcm) [] 2020/10/24(土) 08:32:09.72 ID:PENdR3tu0 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 が標準 http://mevius.5ch.net/test/read.cgi/tech/1578068134/820
821: デフォルトの名無しさん (ワッチョイ 89e6-9Kcm) [sage] 2020/10/24(土) 14:35:22.81 ID:rBYTjNf90 >>820 ありがとうございます webpack-dev-server 調べてみます http://mevius.5ch.net/test/read.cgi/tech/1578068134/821
822: デフォルトの名無しさん (ワッチョイ 2101-JqA3) [sage] 2020/10/24(土) 21:01:22.94 ID:ehonUome0 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は期待されていない? http://mevius.5ch.net/test/read.cgi/tech/1578068134/822
823: デフォルトの名無しさん (オッペケ Sr11-y5oF) [sage] 2020/10/24(土) 21:05:37.26 ID:xQuuF55sr どっちも変わらん p 100.fdiv(float_number) # => 1370.745548503831 p 100.fdiv(biddecimal_number) # => 1370.745548504 http://mevius.5ch.net/test/read.cgi/tech/1578068134/823
824: デフォルトの名無しさん (ワッチョイ 654e-0r4w) [sage] 2020/10/24(土) 21:19:23.51 ID:6XNLJEFJ0 biddecimalwwwww http://mevius.5ch.net/test/read.cgi/tech/1578068134/824
825: デフォルトの名無しさん (ワッチョイ 2101-JqA3) [sage] 2020/10/24(土) 21:23:11.77 ID:ehonUome0 ありがとう 使ってるrubyのバージョンが低すぎるみたいだ http://mevius.5ch.net/test/read.cgi/tech/1578068134/825
826: デフォルトの名無しさん (ワッチョイ 654e-0r4w) [sage] 2020/10/25(日) 09:56:38.85 ID:/elpRfls0 rubyはバージョン上げると前動いたコードが動かないからな。 そこらへんの互換性はjs>>php>>>python>>>rubyみたいな感じ。 行き当たりバッタリで以前の仕様気にせず変える。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/826
827: デフォルトの名無しさん (ワッチョイ c201-45kF) [sage] 2020/10/25(日) 10:48:16.22 ID:M7kzCKlu0 >>826 phpは知らんけど js >> ruby >>> python やろ railsと違ってruby自体は後方互換性かなり高いぞ CLI系なら10年以上前のものでもだいたい問題なく使える pythonも言語自体は後方互換性高いが バージョンごとにdeprecated/removedになるAPIはrubyよりずっと多い それもあってメジャーなライブラリの新バージョン対応は遅くて 半年くらい待たないと言語の新しいバージョンを使えないし 言語の新バージョン + ライブラリの旧バージョンの組み合わせだと 動かなくなる率が高くてライブラリのAPI変更にも対応しないといけない http://mevius.5ch.net/test/read.cgi/tech/1578068134/827
828: デフォルトの名無しさん (ワッチョイ 654e-0r4w) [sage] 2020/10/25(日) 11:02:35.93 ID:/elpRfls0 確かにpythonは2系と3系は隔絶してるけどマイナーバージョンアップでブッ壊れるのはrubyだろ http://mevius.5ch.net/test/read.cgi/tech/1578068134/828
829: デフォルトの名無しさん (ワッチョイ c201-45kF) [sage] 2020/10/25(日) 11:36:06.65 ID:M7kzCKlu0 >>828 例えば? http://mevius.5ch.net/test/read.cgi/tech/1578068134/829
830: デフォルトの名無しさん (ワイーワ2 FFca-YvdE) [] 2020/10/25(日) 12:12:32.16 ID:usbfp6+yF C最強ですね判ります http://mevius.5ch.net/test/read.cgi/tech/1578068134/830
831: デフォルトの名無しさん (オッペケ Sr11-y5oF) [sage] 2020/10/25(日) 13:00:13.81 ID:vQGWPLvqr マイナーバージョンアップで後方互換性がぶっ壊れた例 俺も気になるんで教えて http://mevius.5ch.net/test/read.cgi/tech/1578068134/831
832: デフォルトの名無しさん (ワッチョイ c201-45kF) [sage] 2020/10/25(日) 13:25:50.19 ID:M7kzCKlu0 >>827 よく考えるとjsもクライアントサイドだけじゃなく サーバーサイドで考えると動かなくなることあるな rubyやpythonに比べて新陳代謝が激しくて 10年使い続けたりしないから気にならないだけかも http://mevius.5ch.net/test/read.cgi/tech/1578068134/832
833: デフォルトの名無しさん (オイコラミネオ MM69-kvjF) [sage] 2020/10/25(日) 17:55:59.08 ID:y6I5Oh6cM >>829 リリースノートでも読め。 標準モジュールの変更とか。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/833
834: デフォルトの名無しさん (ワッチョイ de7d-ELaA) [sage] 2020/10/25(日) 18:04:13.90 ID:MTjKoQS00 JIS規格化されてる http://mevius.5ch.net/test/read.cgi/tech/1578068134/834
835: デフォルトの名無しさん (ワッチョイ c201-45kF) [sage] 2020/10/25(日) 18:42:02.16 ID:M7kzCKlu0 >>833 エアプでしたか pythonと違ってrubyでは「標準モジュール」という言い方はしないよ http://mevius.5ch.net/test/read.cgi/tech/1578068134/835
836: デフォルトの名無しさん (オイコラミネオ MM69-kvjF) [sage] 2020/10/25(日) 19:16:39.17 ID:y6I5Oh6cM >>835 んな言葉の違いはどうでも。w ま、違いにあたらなければどうということはないから、すきにしろ。 実際にあたった人や、心配性にはツラい言語。 3以降は、絶対にないレベルにしてほしいものだ。 できればPerlレベルに。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/836
837: デフォルトの名無しさん (ワイーワ2 FFca-YvdE) [] 2020/10/26(月) 15:04:44.51 ID:EltRWJ/HF Ruby が C++ を Hate してるのはホント良く判る http://mevius.5ch.net/test/read.cgi/tech/1578068134/837
838: デフォルトの名無しさん (ブーイモ MM0d-Gto1) [sage] 2020/10/26(月) 16:25:50.97 ID:NTmfRHBrM >>836 Perlもエアプかいw 駱駝道で極楽浄土に行けるといいネ http://mevius.5ch.net/test/read.cgi/tech/1578068134/838
839: デフォルトの名無しさん (オイコラミネオ MM69-kvjF) [sage] 2020/10/26(月) 17:52:56.78 ID:yxMoBvg5M >>838 今やPerl6は存在しないことを知らないの?w http://mevius.5ch.net/test/read.cgi/tech/1578068134/839
840: デフォルトの名無しさん (ワッチョイ c12c-G7xE) [] 2020/10/28(水) 21:30:30.88 ID:H1Ljm7vl0 >>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円! http://mevius.5ch.net/test/read.cgi/tech/1578068134/840
841: デフォルトの名無しさん (ワントンキン MMd3-8ci1) [] 2020/10/31(土) 08:20:00.50 ID:B8uNhuq7M ruby初心者です。 以下のNodeクラスにEnumerable moduleをincludeできるようなeachメソッドを 定義することはできますか。 class Node attr_accessor :data, :next def initialize(data) @data = data @next = nil end end http://mevius.5ch.net/test/read.cgi/tech/1578068134/841
842: デフォルトの名無しさん (ワッチョイ c12c-fDVG) [sage] 2020/10/31(土) 14:36:23.15 ID:zTfIs5nt0 「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 http://mevius.5ch.net/test/read.cgi/tech/1578068134/842
843: デフォルトの名無しさん (スッップ Sd33-OXsB) [sage] 2020/10/31(土) 15:21:36.29 ID:OmKC8x+Wd >>841 https://ideone.com/IjTOn4 http://mevius.5ch.net/test/read.cgi/tech/1578068134/843
844: デフォルトの名無しさん (ワンミングク MMd3-D/jF) [] 2020/11/01(日) 00:02:35.61 ID:X6j+EvTNM >>842 さん 特に、>>843 さん 実装を教えていただいて、ありがとうございます。 https://ideone.com/IjTOn4に記載されていた実装は 私では考えつくことができませんでした。 何を勉強したら書けるようになるのか、悩みます。 ちなみにですが、私の考えたeachの実装は以下のようなものです。 class Node def each while self.next != nil yield self.data self.self.next end end end (でも、私のeachは動作しません。) http://mevius.5ch.net/test/read.cgi/tech/1578068134/844
845: デフォルトの名無しさん (ワンミングク MMd3-D/jF) [] 2020/11/01(日) 00:07:41.13 ID:X6j+EvTNM >> 844 self.self.nextは、self = self.nextの誤記です。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/845
846: デフォルトの名無しさん (ワッチョイ c12c-fDVG) [sage] 2020/11/02(月) 02:18:36.47 ID:cH+o+Znx0 Mix-in とは、何かのモジュールをinclude すると、 それが継承チェーンの親の所へ入ってくるから、 そのモジュール内の関数が使えるようになる 例えば、include Enumerable とすると、 自クラスで、each を定義してあれば、Enumerable内のすべての関数が使える Array も、Enumerableをインクルードしているから、 Array内の関数と、Enumerable内の関数が使える つまり普通に、複数のインスタンスを配列に入れておけば、 Array・Enumerable内の関数が使える ほとんど、この2つのクラス内の関数ばかりを使うから、 どういう事ができるか、見ておいた方がよい また、eachを定義せずに、Enumerableの機能を使うには、Enumerator を使う。 eachは内部イタレータで、Enumeratorは外部イタレータ 初心者はイタレータなど考えず、普通に配列内に入れておけばよい デザインパターンなら、この本が良い。 改訂2版 Ruby逆引きハンドブック、2018 http://mevius.5ch.net/test/read.cgi/tech/1578068134/846
847: 846 (ワッチョイ c12c-fDVG) [] 2020/11/02(月) 08:31:13.28 ID:cH+o+Znx0 「Ruby each 実装」「ruby イテレータ 実装」で検索! 内部・外部イテレータの違いも、調べてみれば? ruby eachの実装 https://teratail.com/questions/117974 http://mevius.5ch.net/test/read.cgi/tech/1578068134/847
848: デフォルトの名無しさん (ササクッテロル Spc5-D/jF) [] 2020/11/03(火) 09:41:15.68 ID:XEwmRHqvp >>846さん アドバイスありがとうございました。 示していただいたキーワードを使ってネットの情報を読み漁ってました。 rubyに関する基本的な文法知識も弱いのですが、デザインパターンという 考え方?思想?もわかっていないので、文法の習得と並行して勉強が必要だと 感じました。修業します。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/848
849: 846 (ワッチョイ c12c-WmiC) [sage] 2020/11/03(火) 22:57:00.33 ID:pWieQE6j0 Mix-in の例で、include Enumerable して、 Enumerableモジュール内の関数が使えるように、 自クラスで、each を実装しましょうとか、 こういうのを初心者向けで見たことがない ほとんど、こういう事をやってる人は、いないと思う なぜかというと、Array は、Enumerableをインクルードしているから、 配列に入れれば、何でもできるから だから、そもそも、どうしてこういう事をしようと思ったのか、疑問に思う プログラミングのお題スレの問題でも、 すべて、Array, Hash, Enumerableで解ける http://mevius.5ch.net/test/read.cgi/tech/1578068134/849
850: デフォルトの名無しさん (ワッチョイ 7933-cLMs) [sage] 2020/11/03(火) 23:15:09.60 ID:eTFEu/to0 >>849 遅延評価 http://mevius.5ch.net/test/read.cgi/tech/1578068134/850
851: デフォルトの名無しさん (アウウィフ FFcd-GqKp) [] 2020/11/04(水) 10:08:06.70 ID:wF8lqQTTF Ruby、信者は、おことわり http://mevius.5ch.net/test/read.cgi/tech/1578068134/851
852: 846 (ワッチョイ ad2c-j5Tt) [sage] 2020/11/04(水) 23:31:34.08 ID:oOk5Pqvr0 一部のメソッドで、遅延評価できる 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 http://mevius.5ch.net/test/read.cgi/tech/1578068134/852
853: デフォルトの名無しさん (ワッチョイ d201-CJ6T) [sage] 2020/11/04(水) 23:51:12.04 ID:lTVc+I7v0 Enumerableは高階関数とともに脱初心者の一番の目安 この2つをパパっと作って使えるようになれば初心者は卒業 http://mevius.5ch.net/test/read.cgi/tech/1578068134/853
854: 846 (ワッチョイ ad2c-j5Tt) [sage] 2020/11/05(木) 23:53:13.53 ID:lCe7ZMVj0 Ruby の強みは、 Array, Hash, Enumerable, Enumerator の豊富なメソッドを、 メソッドチェーンでつなげていくプログラミング どういうメソッドがあるのか、じっくり見ておくべき! http://mevius.5ch.net/test/read.cgi/tech/1578068134/854
855: デフォルトの名無しさん (ワッチョイ 368c-5lCJ) [sage] 2020/11/07(土) 23:50:43.02 ID:DktN1QwS0 TIOBE Index、perlより下じゃん http://mevius.5ch.net/test/read.cgi/tech/1578068134/855
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 147 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s