プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0755デフォルトの名無しさん (ワッチョイ 272c-3NJ+)
2020/09/04(金) 00:42:11.02ID:Wl7qFIBb0 Node.js は非同期が基本。
Windows では、50ms 以上掛かるものは、非同期にするのが基本
>>752
irb とか、そんな面倒なものは使わない
VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる
Windows では、50ms 以上掛かるものは、非同期にするのが基本
>>752
irb とか、そんな面倒なものは使わない
VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる
756デフォルトの名無しさん (ワッチョイ bf8c-9HBf)
2020/09/04(金) 03:38:08.87ID:Akgzavid0 VSCodeでCode Runnerね。オーケーオーケー
757デフォルトの名無しさん (ワッチョイ 8714-XrX+)
2020/09/04(金) 05:36:12.08ID:ovAJuzA/0 穴ほって埋めるやつか
758デフォルトの名無しさん (ワッチョイ 4733-XuvI)
2020/09/04(金) 10:18:21.30ID:icCvRHhg0 平安京エイリアンか。
759デフォルトの名無しさん (ワッチョイ 272c-3NJ+)
2020/09/05(土) 22:17:01.41ID:dAk5cbFF0 エンジニアチャンネル粟島、9/4
プログラミングでYouTube動画の編集作業を自動化する
https://www.youtube.com/watch?v=2nDkNHeCKs4
プログラミングで、自動的に無音部分をカットして、動画をつなげる。
Python で作ってる
皆、何時間も掛かって編集しているから、
誰か、Ruby で作って、公開しろ
粟島に、スーパー・プログラマーの称号を独り占めさせるのは、癪にさわる
プログラミングでYouTube動画の編集作業を自動化する
https://www.youtube.com/watch?v=2nDkNHeCKs4
プログラミングで、自動的に無音部分をカットして、動画をつなげる。
Python で作ってる
皆、何時間も掛かって編集しているから、
誰か、Ruby で作って、公開しろ
粟島に、スーパー・プログラマーの称号を独り占めさせるのは、癪にさわる
760デフォルトの名無しさん (アウウィフ FF8b-th+2)
2020/09/06(日) 14:32:01.97ID:pKWvrGW4F ffmpeg 呼んでるだけだから ruby で同じことすればいいだけ
そもそも youtube の web 上の作業を自動化するのかと思ったらそうでもないし
誤解を招く
そもそも youtube の web 上の作業を自動化するのかと思ったらそうでもないし
誤解を招く
761759 (ワッチョイ 272c-3NJ+)
2020/09/07(月) 11:58:27.72ID:IF51aHwX0 粟島に、敵対心むき出しの、凡才プログラマーKBOY に教えてやったら?
エンジニアチャンネル粟島
【検証】現役プログラマーは30万円の案件を何時間で出来るのか?
https://www.youtube.com/watch?v=rt_X6n9oWa4
YouTube API で、指定条件に当てはまる、動画を集める(filtering)のを、Ruby で、1時間で作った。
つまり、時給30万円!
これも最終的に、30人が応募して、数千円になったらしいがw
エンジニアチャンネル粟島
【検証】現役プログラマーは30万円の案件を何時間で出来るのか?
https://www.youtube.com/watch?v=rt_X6n9oWa4
YouTube API で、指定条件に当てはまる、動画を集める(filtering)のを、Ruby で、1時間で作った。
つまり、時給30万円!
これも最終的に、30人が応募して、数千円になったらしいがw
762デフォルトの名無しさん (エムゾネ FF7f-j7FC)
2020/09/07(月) 12:03:06.35ID:K0kNn/CsF 闇サイトのバイトか
763デフォルトの名無しさん (ワッチョイ 4b2c-8GNv)
2020/09/23(水) 01:34:43.74ID:vUEpR4nB0 エンジニアチャンネル・小川
【悪用厳禁】Amazonの価格を監視するシステムを作ってみた
https://www.youtube.com/watch?v=Gr6FJUOfMHc
Amazon のAPI を使って、価格を監視して、LINE へ通知する
【悪用厳禁】Amazonの価格を監視するシステムを作ってみた
https://www.youtube.com/watch?v=Gr6FJUOfMHc
Amazon のAPI を使って、価格を監視して、LINE へ通知する
764デフォルトの名無しさん (ワッチョイ 6fda-AsQc)
2020/09/28(月) 08:01:27.35ID:ZnjqOblj0 このサイトIRB代わりに使ってたんですがバージョン2.1.5とめっちゃ古いです
ライブコーディング?機能のついた同種のサイトってないですか
http://fatiherikli.github.io/fil/#eyJwYXRoIjoiSVJCLnJiIiwic291cmNlIjoicCBSVUJZX1ZFUlNJT04ifQ==
ライブコーディング?機能のついた同種のサイトってないですか
http://fatiherikli.github.io/fil/#eyJwYXRoIjoiSVJCLnJiIiwic291cmNlIjoicCBSVUJZX1ZFUlNJT04ifQ==
765デフォルトの名無しさん (ワッチョイ d32c-G8Sl)
2020/10/01(木) 08:39:12.41ID:theiHz1p0 JSON ファイルの中身が、下のようなユニコード・コードポイントの表示が多くて、読めない
{{\u30ab\u30ec\u30f3\u30c0\u30fc 10\u6708}}
ファイルを丸ごと読めるように、変換する方法を教えて!
{{\u30ab\u30ec\u30f3\u30c0\u30fc 10\u6708}}
ファイルを丸ごと読めるように、変換する方法を教えて!
766デフォルトの名無しさん (ワッチョイ d32c-G8Sl)
2020/10/01(木) 08:49:16.51ID:theiHz1p0767デフォルトの名無しさん (オッペケ Sr47-VYpw)
2020/10/01(木) 21:03:03.13ID:BMjHKKQ5r768765 (ワッチョイ d32c-G8Sl)
2020/10/01(木) 22:25:46.66ID:theiHz1p0 JSON ファイルをcat しても、変換されませんでした!
普通の英数字と、\u6708 みたいな文字が混じっているファイルです
普通の英数字と、\u6708 みたいな文字が混じっているファイルです
769デフォルトの名無しさん (ラクッペペ MM7f-0zgZ)
2020/10/02(金) 09:07:20.78ID:ugOoTtJuM matlabでのfiltfilt()のように、ゼロ位相デジタルフィルター処理ができる関数はなんでしょうか
770デフォルトの名無しさん (ラクッペペ MM7f-0zgZ)
2020/10/02(金) 11:29:50.32ID:36KHjBX6M すみませんでした
771765 (ワッチョイ d32c-IT45)
2020/10/03(土) 07:39:23.69ID:/wA+nWqo0 c@at input.json | pe@rl -@Xpne 's/\\u([0-9a-fA-F]{4})/c@hr(h@ex($1))/eg'
(投稿できないので、@を入れました)
で、日本語で表示されました!
これを、Ruby では、どう書きますか?
正規表現で、\u6708 みたいな文字を、どう変換するの?
(投稿できないので、@を入れました)
で、日本語で表示されました!
これを、Ruby では、どう書きますか?
正規表現で、\u6708 みたいな文字を、どう変換するの?
772デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/03(土) 09:17:06.76ID:DiO6Np8S0 Rubyだと、正規表現にマッチした部分を引数にして関数に渡してくれる
メソッドが有る筈だから、それを使えば出来るはず。
メソッドが有る筈だから、それを使えば出来るはず。
773デフォルトの名無しさん (ワッチョイ b37c-gW4a)
2020/10/03(土) 09:27:06.27ID:F7oAx4CC0 -Ks -Ke -Ku があるから -Kw もあるはずだろう(驚き最小)
774デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/03(土) 09:32:00.87ID:DiO6Np8S0 >>771
以下のようにすれば、\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 } );
以下のようにすれば、\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 } );
775デフォルトの名無しさん (オッペケ Sr47-VYpw)
2020/10/03(土) 09:45:21.01ID:MOu6VxbMr そういうことならJSON.load使えば?
require 'json'
JSON.load(fname)
愚直にやるならArray#packを使いましょう。
str.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}
require 'json'
JSON.load(fname)
愚直にやるならArray#packを使いましょう。
str.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}
776デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/03(土) 10:47:42.33ID:DiO6Np8S0777デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/03(土) 10:58:07.83ID:DiO6Np8S0 "UTF-8"ではなくて、"UTF16-BE"か、"UTF16-LE"かも知れない。
試して上手く行くのを選んで欲しい。
試して上手く行くのを選んで欲しい。
778765 (ワッチョイ d32c-IT45)
2020/10/03(土) 11:41:59.34ID:/wA+nWqo0779デフォルトの名無しさん (ワッチョイ ff01-ZVjj)
2020/10/03(土) 12:38:03.63ID:1IyBCfpu0 👨👩👧👦1コードポイント1文字とは限らないし¥uの後は4桁とは限らないよね👨
780765 (ワッチョイ d32c-IT45)
2020/10/03(土) 13:09:59.31ID:/wA+nWqo0 それなら、単純な正規表現では、ダメ。
実際に存在する、コードポイントを調べないといけない
ひょっとしたら、JSON.load は、それに対応しているかも
実際に存在する、コードポイントを調べないといけない
ひょっとしたら、JSON.load は、それに対応しているかも
781デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/04(日) 15:56:43.31ID:P8Zgc9xR0782765 (ワッチョイ d32c-IT45)
2020/10/05(月) 01:16:19.79ID:z7kgQPv30 \u は、4・8桁の2種類あるのか?
783765 (ワッチョイ d32c-IT45)
2020/10/05(月) 08:08:05.24ID: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}
\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}
784デフォルトの名無しさん (ワッチョイ b37c-N+m6)
2020/10/05(月) 10:14:21.95ID:H6rSrLtq0 もう ruby 関係無いだろ
良い加減消えろ
推奨スレ
mevius.5ch.net/test/read.cgi/tech/1545032904/
mevius.5ch.net/test/read.cgi/tech/1593777227/
良い加減消えろ
推奨スレ
mevius.5ch.net/test/read.cgi/tech/1545032904/
mevius.5ch.net/test/read.cgi/tech/1593777227/
785デフォルトの名無しさん (ワッチョイ 672c-JAxH)
2020/10/11(日) 00:59:43.22ID: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]
この( ) をなくすと、エラーになる
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]
786デフォルトの名無しさん (オッペケ Sr03-EsYS)
2020/10/11(日) 18:44:20.92ID:vt3DXswMr >>785
仕様通りです
仕様通りです
787デフォルトの名無しさん (ワッチョイ c308-8Ti4)
2020/10/13(火) 15:52:15.31ID:Iy+8ZYjV0 初心者です
Windows10でrubyのバージョンは2.4です
gets.chompで日本語の文字列を入力しprintで出力したら文字化けするのですがどうしたら治りますか?
Windows10でrubyのバージョンは2.4です
gets.chompで日本語の文字列を入力しprintで出力したら文字化けするのですがどうしたら治りますか?
788デフォルトの名無しさん (ワッチョイ 672c-JAxH)
2020/10/13(火) 16:24:17.23ID: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を使っているのかも?
Ruby Installer のMSYS 2 かい?
日本語入力が難しい
ファイルか、端末の文字コードの設定だろう。
BOM 無しUTF-8(UTF-8N)
ユーザー環境変数に、RUBYOPT を作って、--encoding=UTF-8 を設定するとか。
ただし、irb が、コマンドプロンプトでは使えなくなるので、
PowerShell しか使えなくなる
VSCode の拡張機能、Code Runner で、
選択したコード片、またはファイル全体を実行できる
これで、irbは使わなくてもよいけど、デバッグで、pry が使えなくなるかも。
pry は、irbを使っているのかも?
789788 (ワッチョイ 672c-JAxH)
2020/10/13(火) 16:34:59.69ID: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 などを同じ使い方で、統一的に扱える
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 などを同じ使い方で、統一的に扱える
790788 (ワッチョイ 672c-JAxH)
2020/10/13(火) 16:44:54.23ID:y5Oy6HcC0 Windows 版Ruby の日本語入力では、
コマンドプロンプトよりも、
PowerShell を使う方が良いのかも?
日本語出力は問題ない。
もし、フォントがかすれて表示されたら、バグっているけど
コマンドプロンプトよりも、
PowerShell を使う方が良いのかも?
日本語出力は問題ない。
もし、フォントがかすれて表示されたら、バグっているけど
791788 (ワッチョイ 672c-JAxH)
2020/10/13(火) 16:56:07.22ID: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を使っていない
修正
>ユーザー環境変数に、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を使っていない
792デフォルトの名無しさん (ワッチョイ ee7d-gNG7)
2020/10/13(火) 17:01:18.58ID:v339nyYs0793788 (ワッチョイ 672c-JAxH)
2020/10/13(火) 17:05:42.76ID:y5Oy6HcC0 RUBYOPT に、--encoding=UTF-8 を設定すると、
コマンドプロンプト・PowerShell の文字コードの設定で、
chcp 65001
と入力したが、どちらもエラーで、irbが起動しない
でも、irbを使わなければ、
RUBYOPT に設定するのは、便利なんだけど
コマンドプロンプト・PowerShell の文字コードの設定で、
chcp 65001
と入力したが、どちらもエラーで、irbが起動しない
でも、irbを使わなければ、
RUBYOPT に設定するのは、便利なんだけど
795デフォルトの名無しさん (ワッチョイ c308-8Ti4)
2020/10/13(火) 17:24:55.62ID:Iy+8ZYjV0 みんなありがとうございます
環境変数って編集したら再起動しないといけないとかありますか?
環境変数って編集したら再起動しないといけないとかありますか?
796788 (ワッチョイ 672c-JAxH)
2020/10/13(火) 17:43:39.31ID:y5Oy6HcC0 OS の再起動は、いらないと思う。
Ruby の再起動だけで良いと思う
PowerShell で、以下を入力して、正しく設定されたか、確認してみ
ls env:
Ruby の再起動だけで良いと思う
PowerShell で、以下を入力して、正しく設定されたか、確認してみ
ls env:
797デフォルトの名無しさん (オッペケ Sr03-EsYS)
2020/10/13(火) 19:42:36.62ID:MMOmBqSMr pryがirb使ってるわけないじゃん。(「irb使う」ってのもよくわからんが)
readlineのライブラリがマルチバイト未対応なだけだから
日本語扱うならnoreadlineで起動すればいいよ。
readlineのライブラリがマルチバイト未対応なだけだから
日本語扱うならnoreadlineで起動すればいいよ。
798788 (ワッチョイ 5b2c-F9zC)
2020/10/14(水) 05:06:57.79ID:z5Uy/Vd30 pry, rails console を起動すると、irb が起動されるのかな? と思っていた。
画面が似てるでしょ?
例えば、Windows 10, WSL, Ubuntu 18.04 を起動すると、
コマンドプロンプトと同じ画面が起動される
そういうのと同じなのかな? と思って
画面が似てるでしょ?
例えば、Windows 10, WSL, Ubuntu 18.04 を起動すると、
コマンドプロンプトと同じ画面が起動される
そういうのと同じなのかな? と思って
799デフォルトの名無しさん (ワッチョイ 2b08-TJC9)
2020/10/14(水) 08:31:15.20ID:kgj1R+5V0 RUBYPORT変えてやってみたけどだめでした.
コマンドプロンプトとPowerShellは両方文字化けします.
bash on Windowsだと問題なく動きます. 学校で配布された教材がコマンドプロンプトしか使っておらず, 与えられたサンプルプログラムはバージョン2.4以下じゃないと動かないらしいです. 留年しそう.
コマンドプロンプトとPowerShellは両方文字化けします.
bash on Windowsだと問題なく動きます. 学校で配布された教材がコマンドプロンプトしか使っておらず, 与えられたサンプルプログラムはバージョン2.4以下じゃないと動かないらしいです. 留年しそう.
800788 (ワッチョイ 5b2c-F9zC)
2020/10/14(水) 09:58:02.17ID: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 をチェックしておく
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 をチェックしておく
801デフォルトの名無しさん (ワッチョイ 4b33-bACO)
2020/10/14(水) 10:01:17.73ID:rQGDkRcC0 学校での話なら、友達か先生かに聞けよ。
802788 (ワッチョイ 5b2c-F9zC)
2020/10/14(水) 10:07:17.92ID:z5Uy/Vd30 ただし、RUBYOPT に、--encoding=UTF-8 を設定した場合、
chcp はデフォルトの、CP932 のままにしておく!
65001 にしない
コマンドプロンプト・PowerShell で、chcp と入力してみ
chcp はデフォルトの、CP932 のままにしておく!
65001 にしない
コマンドプロンプト・PowerShell で、chcp と入力してみ
803788 (ワッチョイ 5b2c-n+7I)
2020/10/14(水) 10:21:16.97ID:z5Uy/Vd30 >>802
修正
>chcp はデフォルトの、CP932 のままにしておく!
>65001 にしない
RUBYOPT に、--encoding=UTF-8 を設定した場合、
CP932/65001 のどちらでも、文字化けしない。正常に動く
修正
>chcp はデフォルトの、CP932 のままにしておく!
>65001 にしない
RUBYOPT に、--encoding=UTF-8 を設定した場合、
CP932/65001 のどちらでも、文字化けしない。正常に動く
804デフォルトの名無しさん (ワッチョイ 2b08-TJC9)
2020/10/14(水) 11:42:15.98ID:kgj1R+5V0 >>803
ごめん!RUBYOPT変えた!
ファイルの設定ってプログラム書いてるテキストファイルの設定ってことですか?どうやって変えるのでしょうか? 一応Rubyopt変えただけだと文字化けしちゃってchcp 65001って実行してプログラム起動させたらコマンドプロンプトは落ちちゃった. PowerShellはもう日本語全部文字化けしちゃった
ごめん!RUBYOPT変えた!
ファイルの設定ってプログラム書いてるテキストファイルの設定ってことですか?どうやって変えるのでしょうか? 一応Rubyopt変えただけだと文字化けしちゃってchcp 65001って実行してプログラム起動させたらコマンドプロンプトは落ちちゃった. PowerShellはもう日本語全部文字化けしちゃった
805788 (ワッチョイ 5b2c-F9zC)
2020/10/14(水) 12:29:05.96ID:z5Uy/Vd30 たぶん、エディタの文字コードの設定メニューあたりから、
BOM 無しUTF-8(UTF-8N)に設定する
一番よいのは、VSCode で、Code Runner を使う
BOM 無しUTF-8(UTF-8N)に設定する
一番よいのは、VSCode で、Code Runner を使う
806デフォルトの名無しさん (オッペケ Sr0f-7/+M)
2020/10/14(水) 19:15:13.60ID:Y0U/d7P+r >>799
noreadlineで起動すればいいって言ってんじゃん
noreadlineで起動すればいいって言ってんじゃん
807788 (ワッチョイ 5b2c-F9zC)
2020/10/15(木) 06:56:58.31ID:7eWumHpU0 RUBYOPT に、--encoding=UTF-8 を設定すると、
irb --noreadline
で起動しても、エラーになる
irb --noreadline
で起動しても、エラーになる
808788 (ワッチョイ 5b2c-F9zC)
2020/10/15(木) 07:13:17.57ID:7eWumHpU0 RUBYOPT に、--encoding=UTF-8 を設定すると、
irb --noreadline
irb -E UTF-8
irb -E Shift_JIS
で起動しても、エラーになる
irb --noreadline
irb -E UTF-8
irb -E Shift_JIS
で起動しても、エラーになる
809788 (ワッチョイ 5b2c-F9zC)
2020/10/15(木) 07:32:54.02ID:7eWumHpU0 Windows では、RUBYOPT の、--encoding=UTF-8 と、irb は両立しない
irb を捨てて、VSCode のCode Runner を使う方がよい。
これで、選択したコード片、またはファイル全体を実行できる
その代わり、pry, rails console が使えなくなるかも?
よく分からないけど
irb を捨てて、VSCode のCode Runner を使う方がよい。
これで、選択したコード片、またはファイル全体を実行できる
その代わり、pry, rails console が使えなくなるかも?
よく分からないけど
810デフォルトの名無しさん (ワッチョイ bb5f-nsiV)
2020/10/15(木) 14:56:39.44ID:FYvAP3o60 powershellじゃなくてレガシーコンソールのコマンドプロンプトを使わないとダメだったはず
811788 (ワッチョイ 5b2c-F9zC)
2020/10/15(木) 15:46:22.07ID:7eWumHpU0 >>808
は、PowerShell・コマンドプロンプトのどちらでも、エラーになる
は、PowerShell・コマンドプロンプトのどちらでも、エラーになる
812デフォルトの名無しさん (ワッチョイ 7b61-8ZN/)
2020/10/17(土) 14:09:06.36ID:cX3MrjsP0 4,000行ほどのRubyプログラムをnode.jsに乗り換えようと思ってましたが
やっぱりRubyの方が便利な気がしてきました。
JSはローカル変数がちゃんと作れることやapplyが使えること、ifブロックやコメントの書き方などが
好きだったんですが元々ブラウザ用だったせいかファイル関連が非同期推奨ですし
stdoutとfileの違いもちゃんと意識しないといけなくなっているようです。
ファイル関連のライブラリも非同期のみの対応の場合も多いようで、Rubyに比べると
使い勝手に問題が有りそうです。
スクリプト言語の目的は簡単にプログラムしたいことですが、node.jsよりRubyの方が
ファイル関連は簡単なようです。
やっぱりRubyの方が便利な気がしてきました。
JSはローカル変数がちゃんと作れることやapplyが使えること、ifブロックやコメントの書き方などが
好きだったんですが元々ブラウザ用だったせいかファイル関連が非同期推奨ですし
stdoutとfileの違いもちゃんと意識しないといけなくなっているようです。
ファイル関連のライブラリも非同期のみの対応の場合も多いようで、Rubyに比べると
使い勝手に問題が有りそうです。
スクリプト言語の目的は簡単にプログラムしたいことですが、node.jsよりRubyの方が
ファイル関連は簡単なようです。
813デフォルトの名無しさん (ワッチョイ 7b61-8ZN/)
2020/10/18(日) 01:39:25.66ID:xeOKOt4d0 Rubyはちゃんとしたブロック変数が作りにくいことが欠点だと思っていたのですが
逆にnode.jsの場合、グローバル変数とローカル(ブロック)変数の違いが
最初の定義時にlet(またはvar)を書くかどうかだけで区別されており、
それはそれで危険な場面もあるように気付きました。
Rubyの場合は、先頭が$で始まる変数はグローバルになり、大文字で始まる変数は
グローバル定数になりますので、有る意味では安全ですし、命名規則としても
全てのプログラマで共通になりソースの分かり易さに貢献している可能性があります。
node.jsの場合、let文を書き忘れただけでグローバル変数になるのは原因不明の
バグが入り込む可能性を増やしている可能性があります。
また、Rubyは、system関数が便利です。
実際に使用してみた感想としてRubyは全体的に安定している印象を持ちましたが、
node.jsは、インストール時の一番大事な環境変数ですら自動設定されておらず、
プログラマー以外の人にプログラムを配布することは絶望的です。
逆にnode.jsの場合、グローバル変数とローカル(ブロック)変数の違いが
最初の定義時にlet(またはvar)を書くかどうかだけで区別されており、
それはそれで危険な場面もあるように気付きました。
Rubyの場合は、先頭が$で始まる変数はグローバルになり、大文字で始まる変数は
グローバル定数になりますので、有る意味では安全ですし、命名規則としても
全てのプログラマで共通になりソースの分かり易さに貢献している可能性があります。
node.jsの場合、let文を書き忘れただけでグローバル変数になるのは原因不明の
バグが入り込む可能性を増やしている可能性があります。
また、Rubyは、system関数が便利です。
実際に使用してみた感想としてRubyは全体的に安定している印象を持ちましたが、
node.jsは、インストール時の一番大事な環境変数ですら自動設定されておらず、
プログラマー以外の人にプログラムを配布することは絶望的です。
814デフォルトの名無しさん (ワッチョイ 5b2c-UsEC)
2020/10/18(日) 18:18:43.72ID: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 にも出来たのかな?
VSCode ESLint とかで、チェックできるのでは?
Windows でも、50ms 以上掛かる、IO は非同期を推奨してるから、書きにくい
でも、Ruby on Rails 6 では、デフォルトで、Node.js, Webpack を使う
ただし、GUI はHTML, CSS/SASS, Bootstrap, JavaScript(JS)だけど、
サーバー側言語には、Rubyを使う
Rubyには最初から、C と同様、関数スコープがあった。
ES2015 で、JS にも出来たのかな?
815814 (ワッチョイ 5b2c-UsEC)
2020/10/18(日) 18:30:15.98ID:WlQf1Fni0 YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない。
JavaScript, Python から始めろって絶対に言わない!
Python から始めてはいけないって言ってる。
「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則】
KENTA は、10言語以上知っていて、
登録者数5万人、月千円のサロンが、2千人もいるから、
十分にヒアリングしてるし、どの言語が挫折確率が高いか、よく分かっている
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない。
JavaScript, Python から始めろって絶対に言わない!
Python から始めてはいけないって言ってる。
「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則】
KENTA は、10言語以上知っていて、
登録者数5万人、月千円のサロンが、2千人もいるから、
十分にヒアリングしてるし、どの言語が挫折確率が高いか、よく分かっている
816デフォルトの名無しさん (ワッチョイ db4e-T8Cx)
2020/10/18(日) 18:36:30.11ID:xWXtsYNK0 KENTA「Rubyに拘泥する奴は伸びない。さっさと他の言語に進め」
817デフォルトの名無しさん (ワッチョイ fb33-bACO)
2020/10/18(日) 19:10:33.77ID:Ie2s5K3J0818デフォルトの名無しさん (ワッチョイ 6b01-ntOo)
2020/10/18(日) 20:35:28.25ID:2aU6LfzH0 KENTA「C++を始めるべき」
819デフォルトの名無しさん (ワッチョイ 2922-9Kcm)
2020/10/23(金) 17:32:28.92ID:iE1/WHvK0 VSCodeなどにHTMLのLivePreview機能がありますが、
erbのLivePreview対応アプリケーションってありますか?
erbのLivePreview対応アプリケーションってありますか?
820デフォルトの名無しさん (ワッチョイ 052c-9Kcm)
2020/10/24(土) 08:32:09.72ID: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 が標準
PHP で作る動的ページも表示してるけど、ERB のやり方は分からない
https://chrome.google.com/webstore/detail/live-server-web-extension/fiegdmejfepffgpnejdinekhfieaogmj?hl=pt-BR
Rails 6 なら、webpack-dev-server が標準
821デフォルトの名無しさん (ワッチョイ 89e6-9Kcm)
2020/10/24(土) 14:35:22.81ID:rBYTjNf90822デフォルトの名無しさん (ワッチョイ 2101-JqA3)
2020/10/24(土) 21:01:22.94ID: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は期待されていない?
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は期待されていない?
823デフォルトの名無しさん (オッペケ Sr11-y5oF)
2020/10/24(土) 21:05:37.26ID:xQuuF55sr どっちも変わらん
p 100.fdiv(float_number) # => 1370.745548503831
p 100.fdiv(biddecimal_number) # => 1370.745548504
p 100.fdiv(float_number) # => 1370.745548503831
p 100.fdiv(biddecimal_number) # => 1370.745548504
824デフォルトの名無しさん (ワッチョイ 654e-0r4w)
2020/10/24(土) 21:19:23.51ID:6XNLJEFJ0 biddecimalwwwww
825デフォルトの名無しさん (ワッチョイ 2101-JqA3)
2020/10/24(土) 21:23:11.77ID:ehonUome0 ありがとう
使ってるrubyのバージョンが低すぎるみたいだ
使ってるrubyのバージョンが低すぎるみたいだ
826デフォルトの名無しさん (ワッチョイ 654e-0r4w)
2020/10/25(日) 09:56:38.85ID:/elpRfls0 rubyはバージョン上げると前動いたコードが動かないからな。
そこらへんの互換性はjs>>php>>>python>>>rubyみたいな感じ。
行き当たりバッタリで以前の仕様気にせず変える。
そこらへんの互換性はjs>>php>>>python>>>rubyみたいな感じ。
行き当たりバッタリで以前の仕様気にせず変える。
827デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/25(日) 10:48:16.22ID:M7kzCKlu0 >>826
phpは知らんけど
js >> ruby >>> python やろ
railsと違ってruby自体は後方互換性かなり高いぞ
CLI系なら10年以上前のものでもだいたい問題なく使える
pythonも言語自体は後方互換性高いが
バージョンごとにdeprecated/removedになるAPIはrubyよりずっと多い
それもあってメジャーなライブラリの新バージョン対応は遅くて
半年くらい待たないと言語の新しいバージョンを使えないし
言語の新バージョン + ライブラリの旧バージョンの組み合わせだと
動かなくなる率が高くてライブラリのAPI変更にも対応しないといけない
phpは知らんけど
js >> ruby >>> python やろ
railsと違ってruby自体は後方互換性かなり高いぞ
CLI系なら10年以上前のものでもだいたい問題なく使える
pythonも言語自体は後方互換性高いが
バージョンごとにdeprecated/removedになるAPIはrubyよりずっと多い
それもあってメジャーなライブラリの新バージョン対応は遅くて
半年くらい待たないと言語の新しいバージョンを使えないし
言語の新バージョン + ライブラリの旧バージョンの組み合わせだと
動かなくなる率が高くてライブラリのAPI変更にも対応しないといけない
828デフォルトの名無しさん (ワッチョイ 654e-0r4w)
2020/10/25(日) 11:02:35.93ID:/elpRfls0 確かにpythonは2系と3系は隔絶してるけどマイナーバージョンアップでブッ壊れるのはrubyだろ
829デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/25(日) 11:36:06.65ID:M7kzCKlu0 >>828
例えば?
例えば?
830デフォルトの名無しさん (ワイーワ2 FFca-YvdE)
2020/10/25(日) 12:12:32.16ID:usbfp6+yF C最強ですね判ります
831デフォルトの名無しさん (オッペケ Sr11-y5oF)
2020/10/25(日) 13:00:13.81ID:vQGWPLvqr マイナーバージョンアップで後方互換性がぶっ壊れた例
俺も気になるんで教えて
俺も気になるんで教えて
832デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/25(日) 13:25:50.19ID:M7kzCKlu0 >>827
よく考えるとjsもクライアントサイドだけじゃなく
サーバーサイドで考えると動かなくなることあるな
rubyやpythonに比べて新陳代謝が激しくて
10年使い続けたりしないから気にならないだけかも
よく考えるとjsもクライアントサイドだけじゃなく
サーバーサイドで考えると動かなくなることあるな
rubyやpythonに比べて新陳代謝が激しくて
10年使い続けたりしないから気にならないだけかも
833デフォルトの名無しさん (オイコラミネオ MM69-kvjF)
2020/10/25(日) 17:55:59.08ID:y6I5Oh6cM834デフォルトの名無しさん (ワッチョイ de7d-ELaA)
2020/10/25(日) 18:04:13.90ID:MTjKoQS00 JIS規格化されてる
835デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/25(日) 18:42:02.16ID:M7kzCKlu0836デフォルトの名無しさん (オイコラミネオ MM69-kvjF)
2020/10/25(日) 19:16:39.17ID:y6I5Oh6cM >>835
んな言葉の違いはどうでも。w
ま、違いにあたらなければどうということはないから、すきにしろ。
実際にあたった人や、心配性にはツラい言語。
3以降は、絶対にないレベルにしてほしいものだ。
できればPerlレベルに。
んな言葉の違いはどうでも。w
ま、違いにあたらなければどうということはないから、すきにしろ。
実際にあたった人や、心配性にはツラい言語。
3以降は、絶対にないレベルにしてほしいものだ。
できればPerlレベルに。
837デフォルトの名無しさん (ワイーワ2 FFca-YvdE)
2020/10/26(月) 15:04:44.51ID:EltRWJ/HF Ruby が C++ を Hate してるのはホント良く判る
838デフォルトの名無しさん (ブーイモ MM0d-Gto1)
2020/10/26(月) 16:25:50.97ID:NTmfRHBrM839デフォルトの名無しさん (オイコラミネオ MM69-kvjF)
2020/10/26(月) 17:52:56.78ID:yxMoBvg5M >>838
今やPerl6は存在しないことを知らないの?w
今やPerl6は存在しないことを知らないの?w
840デフォルトの名無しさん (ワッチョイ c12c-G7xE)
2020/10/28(水) 21:30:30.88ID: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円!
リファクタリング:Rubyエディション (日本語) 単行本、2020/3、
Jay Fields/Shane Harvie/Martin Fowler/Kent Beck/長尾 高弘
Martin Fowlerの名著『リファクタリング』のRuby対応全面改訂版が、ついに復刊!
Kent Beck は、eXtreme Programming(XP)の提唱者
Java 版をRubyへ書き直したもの。
2010年の復刊。8,800円!
841デフォルトの名無しさん (ワントンキン MMd3-8ci1)
2020/10/31(土) 08:20:00.50ID:B8uNhuq7M ruby初心者です。
以下のNodeクラスにEnumerable moduleをincludeできるようなeachメソッドを
定義することはできますか。
class Node
attr_accessor :data, :next
def initialize(data)
@data = data
@next = nil
end
end
以下のNodeクラスにEnumerable moduleをincludeできるようなeachメソッドを
定義することはできますか。
class Node
attr_accessor :data, :next
def initialize(data)
@data = data
@next = nil
end
end
842デフォルトの名無しさん (ワッチョイ c12c-fDVG)
2020/10/31(土) 14:36:23.15ID: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
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
843デフォルトの名無しさん (スッップ Sd33-OXsB)
2020/10/31(土) 15:21:36.29ID:OmKC8x+Wd844デフォルトの名無しさん (ワンミングク MMd3-D/jF)
2020/11/01(日) 00:02:35.61ID: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は動作しません。)
特に、>>843 さん
実装を教えていただいて、ありがとうございます。
https://ideone.com/IjTOn4に記載されていた実装は
私では考えつくことができませんでした。
何を勉強したら書けるようになるのか、悩みます。
ちなみにですが、私の考えたeachの実装は以下のようなものです。
class Node
def each
while self.next != nil
yield self.data
self.self.next
end
end
end
(でも、私のeachは動作しません。)
845デフォルトの名無しさん (ワンミングク MMd3-D/jF)
2020/11/01(日) 00:07:41.13ID:X6j+EvTNM >> 844
self.self.nextは、self = self.nextの誤記です。
self.self.nextは、self = self.nextの誤記です。
846デフォルトの名無しさん (ワッチョイ c12c-fDVG)
2020/11/02(月) 02:18:36.47ID: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
それが継承チェーンの親の所へ入ってくるから、
そのモジュール内の関数が使えるようになる
例えば、include Enumerable とすると、
自クラスで、each を定義してあれば、Enumerable内のすべての関数が使える
Array も、Enumerableをインクルードしているから、
Array内の関数と、Enumerable内の関数が使える
つまり普通に、複数のインスタンスを配列に入れておけば、
Array・Enumerable内の関数が使える
ほとんど、この2つのクラス内の関数ばかりを使うから、
どういう事ができるか、見ておいた方がよい
また、eachを定義せずに、Enumerableの機能を使うには、Enumerator を使う。
eachは内部イタレータで、Enumeratorは外部イタレータ
初心者はイタレータなど考えず、普通に配列内に入れておけばよい
デザインパターンなら、この本が良い。
改訂2版 Ruby逆引きハンドブック、2018
847846 (ワッチョイ c12c-fDVG)
2020/11/02(月) 08:31:13.28ID:cH+o+Znx0 「Ruby each 実装」「ruby イテレータ 実装」で検索!
内部・外部イテレータの違いも、調べてみれば?
ruby eachの実装
https://teratail.com/questions/117974
内部・外部イテレータの違いも、調べてみれば?
ruby eachの実装
https://teratail.com/questions/117974
848デフォルトの名無しさん (ササクッテロル Spc5-D/jF)
2020/11/03(火) 09:41:15.68ID:XEwmRHqvp >>846さん
アドバイスありがとうございました。
示していただいたキーワードを使ってネットの情報を読み漁ってました。
rubyに関する基本的な文法知識も弱いのですが、デザインパターンという
考え方?思想?もわかっていないので、文法の習得と並行して勉強が必要だと
感じました。修業します。
アドバイスありがとうございました。
示していただいたキーワードを使ってネットの情報を読み漁ってました。
rubyに関する基本的な文法知識も弱いのですが、デザインパターンという
考え方?思想?もわかっていないので、文法の習得と並行して勉強が必要だと
感じました。修業します。
849846 (ワッチョイ c12c-WmiC)
2020/11/03(火) 22:57:00.33ID:pWieQE6j0 Mix-in の例で、include Enumerable して、
Enumerableモジュール内の関数が使えるように、
自クラスで、each を実装しましょうとか、
こういうのを初心者向けで見たことがない
ほとんど、こういう事をやってる人は、いないと思う
なぜかというと、Array は、Enumerableをインクルードしているから、
配列に入れれば、何でもできるから
だから、そもそも、どうしてこういう事をしようと思ったのか、疑問に思う
プログラミングのお題スレの問題でも、
すべて、Array, Hash, Enumerableで解ける
Enumerableモジュール内の関数が使えるように、
自クラスで、each を実装しましょうとか、
こういうのを初心者向けで見たことがない
ほとんど、こういう事をやってる人は、いないと思う
なぜかというと、Array は、Enumerableをインクルードしているから、
配列に入れれば、何でもできるから
だから、そもそも、どうしてこういう事をしようと思ったのか、疑問に思う
プログラミングのお題スレの問題でも、
すべて、Array, Hash, Enumerableで解ける
850デフォルトの名無しさん (ワッチョイ 7933-cLMs)
2020/11/03(火) 23:15:09.60ID:eTFEu/to0 >>849
遅延評価
遅延評価
851デフォルトの名無しさん (アウウィフ FFcd-GqKp)
2020/11/04(水) 10:08:06.70ID:wF8lqQTTF Ruby、信者は、おことわり
852846 (ワッチョイ ad2c-j5Tt)
2020/11/04(水) 23:31:34.08ID: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
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
853デフォルトの名無しさん (ワッチョイ d201-CJ6T)
2020/11/04(水) 23:51:12.04ID:lTVc+I7v0 Enumerableは高階関数とともに脱初心者の一番の目安
この2つをパパっと作って使えるようになれば初心者は卒業
この2つをパパっと作って使えるようになれば初心者は卒業
854846 (ワッチョイ ad2c-j5Tt)
2020/11/05(木) 23:53:13.53ID:lCe7ZMVj0 Ruby の強みは、
Array, Hash, Enumerable, Enumerator の豊富なメソッドを、
メソッドチェーンでつなげていくプログラミング
どういうメソッドがあるのか、じっくり見ておくべき!
Array, Hash, Enumerable, Enumerator の豊富なメソッドを、
メソッドチェーンでつなげていくプログラミング
どういうメソッドがあるのか、じっくり見ておくべき!
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 ★5 [Hitzeschleier★]
- 日本の立場説明へ…外務省局長が北京到着 “台湾有事”首相答弁に中国反発 [煮卵★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る [蚤の市★]
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 ★6 [Hitzeschleier★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★2 [蚤の市★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 【んな専🏡】姫森ルーナ(・o・🍬)総合スレッド🏰【ホロライブ▶】★2
- 【高市早苗】日本大使館「中国在留邦人は安全確保して!!!」 [115996789]
- 【悲報】有名ウヨ論客、「現実的に考えて中国と仲直りするしかなくね?」と言ったら野良ウヨから総叩きにあう [856698234]
- 【高市悲報】経団連会長、高市と面談「おい!ちゃんと中国と対話しろよ!😨」 [359965264]
- 【実況】博衣こよりのえちえち雀魂1位耐久🧪★4
- 微博とかビリビリとかで日本旅行してる中国人たちに「売国奴」「漢奸」とチャイウヨが一斉突撃中… ほんとうちの高市のせいで申し訳ない [452836546]
