Ruby 初心者スレッド Part 66

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
垢版 |
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0
プログラミング言語 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
782765 (ワッチョイ d32c-IT45)
垢版 |
2020/10/05(月) 01:16:19.79ID:z7kgQPv30
\u は、4・8桁の2種類あるのか?
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}
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/
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]
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で出力したら文字化けするのですがどうしたら治りますか?
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を使っているのかも?
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 などを同じ使い方で、統一的に扱える
2020/10/13(火) 16:44:54.23ID:y5Oy6HcC0
Windows 版Ruby の日本語入力では、

コマンドプロンプトよりも、
PowerShell を使う方が良いのかも?

日本語出力は問題ない。
もし、フォントがかすれて表示されたら、バグっているけど
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を使っていない
2020/10/13(火) 17:01:18.58ID:v339nyYs0
>>787
ridk use で切り替えられるから最新版を試すと良い
このへんの問題も改善されてたはず
2020/10/13(火) 17:05:42.76ID:y5Oy6HcC0
RUBYOPT に、--encoding=UTF-8 を設定すると、

コマンドプロンプト・PowerShell の文字コードの設定で、
chcp 65001
と入力したが、どちらもエラーで、irbが起動しない

でも、irbを使わなければ、
RUBYOPT に設定するのは、便利なんだけど
2020/10/13(火) 17:09:23.25ID:y5Oy6HcC0
>>792
ほう
795デフォルトの名無しさん (ワッチョイ c308-8Ti4)
垢版 |
2020/10/13(火) 17:24:55.62ID:Iy+8ZYjV0
みんなありがとうございます
環境変数って編集したら再起動しないといけないとかありますか?
2020/10/13(火) 17:43:39.31ID:y5Oy6HcC0
OS の再起動は、いらないと思う。
Ruby の再起動だけで良いと思う

PowerShell で、以下を入力して、正しく設定されたか、確認してみ
ls env:
2020/10/13(火) 19:42:36.62ID:MMOmBqSMr
pryがirb使ってるわけないじゃん。(「irb使う」ってのもよくわからんが)
readlineのライブラリがマルチバイト未対応なだけだから
日本語扱うならnoreadlineで起動すればいいよ。
2020/10/14(水) 05:06:57.79ID:z5Uy/Vd30
pry, rails console を起動すると、irb が起動されるのかな? と思っていた。
画面が似てるでしょ?

例えば、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以下じゃないと動かないらしいです. 留年しそう.
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 をチェックしておく
2020/10/14(水) 10:01:17.73ID:rQGDkRcC0
学校での話なら、友達か先生かに聞けよ。
2020/10/14(水) 10:07:17.92ID:z5Uy/Vd30
ただし、RUBYOPT に、--encoding=UTF-8 を設定した場合、
chcp はデフォルトの、CP932 のままにしておく!
65001 にしない

コマンドプロンプト・PowerShell で、chcp と入力してみ
2020/10/14(水) 10:21:16.97ID:z5Uy/Vd30
>>802
修正

>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はもう日本語全部文字化けしちゃった
2020/10/14(水) 12:29:05.96ID:z5Uy/Vd30
たぶん、エディタの文字コードの設定メニューあたりから、
BOM 無しUTF-8(UTF-8N)に設定する

一番よいのは、VSCode で、Code Runner を使う
2020/10/14(水) 19:15:13.60ID:Y0U/d7P+r
>>799
noreadlineで起動すればいいって言ってんじゃん
2020/10/15(木) 06:56:58.31ID:7eWumHpU0
RUBYOPT に、--encoding=UTF-8 を設定すると、

irb --noreadline
で起動しても、エラーになる
2020/10/15(木) 07:13:17.57ID:7eWumHpU0
RUBYOPT に、--encoding=UTF-8 を設定すると、

irb --noreadline

irb -E UTF-8
irb -E Shift_JIS
で起動しても、エラーになる
2020/10/15(木) 07:32:54.02ID:7eWumHpU0
Windows では、RUBYOPT の、--encoding=UTF-8 と、irb は両立しない

irb を捨てて、VSCode のCode Runner を使う方がよい。
これで、選択したコード片、またはファイル全体を実行できる

その代わり、pry, rails console が使えなくなるかも?
よく分からないけど
2020/10/15(木) 14:56:39.44ID:FYvAP3o60
powershellじゃなくてレガシーコンソールのコマンドプロンプトを使わないとダメだったはず
2020/10/15(木) 15:46:22.07ID:7eWumHpU0
>>808
は、PowerShell・コマンドプロンプトのどちらでも、エラーになる
2020/10/17(土) 14:09:06.36ID:cX3MrjsP0
4,000行ほどのRubyプログラムをnode.jsに乗り換えようと思ってましたが
やっぱりRubyの方が便利な気がしてきました。
JSはローカル変数がちゃんと作れることやapplyが使えること、ifブロックやコメントの書き方などが
好きだったんですが元々ブラウザ用だったせいかファイル関連が非同期推奨ですし
stdoutとfileの違いもちゃんと意識しないといけなくなっているようです。
ファイル関連のライブラリも非同期のみの対応の場合も多いようで、Rubyに比べると
使い勝手に問題が有りそうです。
スクリプト言語の目的は簡単にプログラムしたいことですが、node.jsよりRubyの方が
ファイル関連は簡単なようです。
2020/10/18(日) 01:39:25.66ID:xeOKOt4d0
Rubyはちゃんとしたブロック変数が作りにくいことが欠点だと思っていたのですが
逆に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 にも出来たのかな?
2020/10/18(日) 18:30:15.98ID:WlQf1Fni0
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる

この2つ以外は、出てこない。
JavaScript, Python から始めろって絶対に言わない!

Python から始めてはいけないって言ってる。
「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則】

KENTA は、10言語以上知っていて、
登録者数5万人、月千円のサロンが、2千人もいるから、
十分にヒアリングしてるし、どの言語が挫折確率が高いか、よく分かっている
2020/10/18(日) 18:36:30.11ID:xWXtsYNK0
KENTA「Rubyに拘泥する奴は伸びない。さっさと他の言語に進め」
2020/10/18(日) 19:10:33.77ID:Ie2s5K3J0
>>814
Cは、関数スコープというより、ブロックスコープ。
Rubyとは違う。
818デフォルトの名無しさん (ワッチョイ 6b01-ntOo)
垢版 |
2020/10/18(日) 20:35:28.25ID:2aU6LfzH0
KENTA「C++を始めるべき」
2020/10/23(金) 17:32:28.92ID:iE1/WHvK0
VSCodeなどにHTMLの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 が標準
2020/10/24(土) 14:35:22.81ID:rBYTjNf90
>>820
ありがとうございます
webpack-dev-server 調べてみます
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は期待されていない?
2020/10/24(土) 21:05:37.26ID:xQuuF55sr
どっちも変わらん
p 100.fdiv(float_number) # => 1370.745548503831
p 100.fdiv(biddecimal_number) # => 1370.745548504
2020/10/24(土) 21:19:23.51ID:6XNLJEFJ0
biddecimalwwwww
2020/10/24(土) 21:23:11.77ID:ehonUome0
ありがとう
使ってるrubyのバージョンが低すぎるみたいだ
2020/10/25(日) 09:56:38.85ID:/elpRfls0
rubyはバージョン上げると前動いたコードが動かないからな。
そこらへんの互換性はjs>>php>>>python>>>rubyみたいな感じ。
行き当たりバッタリで以前の仕様気にせず変える。
2020/10/25(日) 10:48:16.22ID:M7kzCKlu0
>>826
phpは知らんけど
js >> ruby >>> python やろ

railsと違ってruby自体は後方互換性かなり高いぞ
CLI系なら10年以上前のものでもだいたい問題なく使える

pythonも言語自体は後方互換性高いが
バージョンごとにdeprecated/removedになるAPIはrubyよりずっと多い
それもあってメジャーなライブラリの新バージョン対応は遅くて
半年くらい待たないと言語の新しいバージョンを使えないし
言語の新バージョン + ライブラリの旧バージョンの組み合わせだと
動かなくなる率が高くてライブラリのAPI変更にも対応しないといけない
2020/10/25(日) 11:02:35.93ID:/elpRfls0
確かにpythonは2系と3系は隔絶してるけどマイナーバージョンアップでブッ壊れるのはrubyだろ
2020/10/25(日) 11:36:06.65ID:M7kzCKlu0
>>828
例えば?
830デフォルトの名無しさん (ワイーワ2 FFca-YvdE)
垢版 |
2020/10/25(日) 12:12:32.16ID:usbfp6+yF
C最強ですね判ります
2020/10/25(日) 13:00:13.81ID:vQGWPLvqr
マイナーバージョンアップで後方互換性がぶっ壊れた例
俺も気になるんで教えて
2020/10/25(日) 13:25:50.19ID:M7kzCKlu0
>>827
よく考えるとjsもクライアントサイドだけじゃなく
サーバーサイドで考えると動かなくなることあるな

rubyやpythonに比べて新陳代謝が激しくて
10年使い続けたりしないから気にならないだけかも
2020/10/25(日) 17:55:59.08ID:y6I5Oh6cM
>>829
リリースノートでも読め。
標準モジュールの変更とか。
2020/10/25(日) 18:04:13.90ID:MTjKoQS00
JIS規格化されてる
2020/10/25(日) 18:42:02.16ID:M7kzCKlu0
>>833
エアプでしたか
pythonと違ってrubyでは「標準モジュール」という言い方はしないよ
2020/10/25(日) 19:16:39.17ID:y6I5Oh6cM
>>835
んな言葉の違いはどうでも。w
ま、違いにあたらなければどうということはないから、すきにしろ。

実際にあたった人や、心配性にはツラい言語。
3以降は、絶対にないレベルにしてほしいものだ。
できればPerlレベルに。
837デフォルトの名無しさん (ワイーワ2 FFca-YvdE)
垢版 |
2020/10/26(月) 15:04:44.51ID:EltRWJ/HF
Ruby が C++ を Hate してるのはホント良く判る
2020/10/26(月) 16:25:50.97ID:NTmfRHBrM
>>836
Perlもエアプかいw
駱駝道で極楽浄土に行けるといいネ
2020/10/26(月) 17:52:56.78ID:yxMoBvg5M
>>838
今や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円!
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
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
2020/10/31(土) 15:21:36.29ID:OmKC8x+Wd
>>841
https://ideone.com/IjTOn4
844デフォルトの名無しさん (ワンミングク 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は動作しません。)
845デフォルトの名無しさん (ワンミングク MMd3-D/jF)
垢版 |
2020/11/01(日) 00:07:41.13ID:X6j+EvTNM
>> 844
self.self.nextは、self = self.nextの誤記です。
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
847846 (ワッチョイ c12c-fDVG)
垢版 |
2020/11/02(月) 08:31:13.28ID:cH+o+Znx0
「Ruby each 実装」「ruby イテレータ 実装」で検索!
内部・外部イテレータの違いも、調べてみれば?

ruby eachの実装
https://teratail.com/questions/117974
848デフォルトの名無しさん (ササクッテロル Spc5-D/jF)
垢版 |
2020/11/03(火) 09:41:15.68ID:XEwmRHqvp
>>846さん
アドバイスありがとうございました。
示していただいたキーワードを使ってネットの情報を読み漁ってました。
rubyに関する基本的な文法知識も弱いのですが、デザインパターンという
考え方?思想?もわかっていないので、文法の習得と並行して勉強が必要だと
感じました。修業します。
2020/11/03(火) 22:57:00.33ID:pWieQE6j0
Mix-in の例で、include Enumerable して、
Enumerableモジュール内の関数が使えるように、
自クラスで、each を実装しましょうとか、
こういうのを初心者向けで見たことがない

ほとんど、こういう事をやってる人は、いないと思う

なぜかというと、Array は、Enumerableをインクルードしているから、
配列に入れれば、何でもできるから

だから、そもそも、どうしてこういう事をしようと思ったのか、疑問に思う

プログラミングのお題スレの問題でも、
すべて、Array, Hash, Enumerableで解ける
2020/11/03(火) 23:15:09.60ID:eTFEu/to0
>>849
遅延評価
851デフォルトの名無しさん (アウウィフ FFcd-GqKp)
垢版 |
2020/11/04(水) 10:08:06.70ID:wF8lqQTTF
Ruby、信者は、おことわり
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
2020/11/04(水) 23:51:12.04ID:lTVc+I7v0
Enumerableは高階関数とともに脱初心者の一番の目安
この2つをパパっと作って使えるようになれば初心者は卒業
2020/11/05(木) 23:53:13.53ID:lCe7ZMVj0
Ruby の強みは、

Array, Hash, Enumerable, Enumerator の豊富なメソッドを、
メソッドチェーンでつなげていくプログラミング

どういうメソッドがあるのか、じっくり見ておくべき!
2020/11/07(土) 23:50:43.02ID:DktN1QwS0
TIOBE Index、perlより下じゃん
2020/11/08(日) 03:09:45.71ID:YnyAcD/m0
とうとうperlより下になったかw
誕生経緯w存在意義が…w
857デフォルトの名無しさん (ワッチョイ debb-+U3E)
垢版 |
2020/11/08(日) 10:17:52.02ID:WJSuSySW0
助成金ひっぱりんごビジネス
2020/11/08(日) 10:46:31.03ID:msYgn7TJM
エンベデッド詐欺
ストリーム詐欺
2020/11/08(日) 13:35:54.75ID:P6MM9gKe0
問題 Rubyを開発したのはだれか
答え 2ちゃんねる開発者でもあるひろゆき

根拠
https://programmercollege.jp/column/16456/
2020/11/08(日) 16:28:40.45ID:2D8TgavPM
もうすっかりマイナー言語だな
861デフォルトの名無しさん (ワッチョイ 8101-aWq5)
垢版 |
2020/11/09(月) 21:51:36.37ID:A/fRbmyh0
初めまして、現在の状況はRuby、Windows 10、 VSCode(エディターのみ)です。
以前Basic言語をやってましたがRubyの言語は勉強しました。
1.RubyでVSCodeの便利なデバッガーは何がいいですか。
2.RubyでVSCodeのインターネットまたは本等の使い方を勉強したい。
3.gemへのログインの方法を知りたい。
以上の3点知ってる人がいましたら教えてください、お願いします。
2020/11/10(火) 00:15:08.25ID:TotITmpP0
>>789
に書いた

漏れは、Windows 10, WSL1, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

WSL2 と言う、Hyper-v を使ったものもあるけど、
安定バージョンかどうかは、知らない

VSCodeの便利な拡張機能については、VSCodeのスレで聞いてください。
本は、徹底解説Visual Studio Code、本間咲来、2019/9

漏れのおすすめ拡張機能、Code Runner
右クリックメニューから、選択したコード、またはファイル全体を実行する

この設定をチェックしておく
Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.

デバッガーは漏れは、p, pp, tap などで見てる

VSCodeの拡張機能では、Ruby というものかな?
8個の拡張機能をパックした、Ruby extension pack とか?
漏れは、よく知らない

gem でインストールするのは、bundler だけ!
その後は全て、bundlerでインストールする

gemは、依存関係を考慮しなかったっけ?
gemでインストールしても、依存関係で動かないかも

gem, bundler については、検索して調べてください!
2020/11/10(火) 07:08:10.23ID:yOpM0tMJr
Rubyで本の使い方を勉強するってどういう意味?
864デフォルトの名無しさん (ワイーワ2 FF1a-D/bg)
垢版 |
2020/11/10(火) 12:09:50.03ID:08CevRpcF
Ruby 卒業しようぜ さっさと
865デフォルトの名無しさん (ワッチョイ ed5f-D0pj)
垢版 |
2020/11/12(木) 23:43:36.78ID:9JGUhgPP0
g++です
undefined reference to `ruby_init'
と表示されます
たぶんdllに入ってると思うのですがどこにあるのでしょうか?
よろしくお願いします
866デフォルトの名無しさん (ワッチョイ ed5f-D0pj)
垢版 |
2020/11/12(木) 23:44:28.91ID:9JGUhgPP0
versionは2.7.0です
2020/11/12(木) 23:46:31.86ID:1kfP87l60
「dumpbin Windows」で検索!
868デフォルトの名無しさん (ワッチョイ ed5f-D0pj)
垢版 |
2020/11/12(木) 23:48:50.89ID:9JGUhgPP0
そもそもDLLが見つかりません
ほんとお願いします
2020/11/13(金) 00:13:10.26ID:1m9BN6xD0
>>867
初心者には意味不明です
2020/11/13(金) 00:22:55.68ID:LLS1FCOb0
g++ は、GNU の GCC に含まれる、C++コンパイラ。
GNU で、Windows 向けのDLL を作るの?

RubyInstaller か?
MSYS2/MINGW の、RubyInstaller Development Kit(DevKit)有りか?
ridk install がどうしたこうしたとか?
よく知らないけど

https://rubyinstaller.org/downloads/

Windows 10, WSL, Linux でコンパイルする方法なら、
>>789
に書いたけど
2020/11/13(金) 00:28:08.04ID:1m9BN6xD0
c++にruby_initを組み込んでみたいです
コンパイルエラーがでます
さっぱりわかりません
2020/11/13(金) 00:34:11.29ID:1m9BN6xD0
#include <ruby.h>

int main() {
// Rubyインタプリタの初期化
ruby_init();

// スクリプトの実行
rb_eval_string("print 'Hello World!'");

// Rubyインタプリタのクリーンアップ
ruby_cleanup(0);
}
2020/11/13(金) 00:55:32.20ID:4qY0TlDt0
「初心者」のやることじゃねえ。w
2020/11/13(金) 01:16:13.61ID:LLS1FCOb0
正気?
初心者が、こんな事をする訳ないだろ

C/C++ を、数年以上やってからの話
2020/11/13(金) 01:17:12.74ID:1m9BN6xD0
そう言わずにコンパイルできる方法を教えてください
2020/11/13(金) 01:52:06.56ID:LLS1FCOb0
ffi は C や C++ ように作成された共有ライブラリを、
Ruby で扱うことができるようにするためのライブラリです

libffi を使っているので、事前にインストールが必要です。
NativeExtensions を直接扱わずに、C を操作できます

ruby ffi 入門
https://hawksnowlog.blogspot.com/2019/04/getting-started-ruby-ffi.html
2020/11/13(金) 01:57:04.06ID:1m9BN6xD0
その逆が知りたいわけで。。。
2020/11/13(金) 02:03:07.72ID:LLS1FCOb0
C/C++ から、Ruby を呼ぶ方法か

検索すれば?
2020/11/13(金) 02:06:45.73ID:1m9BN6xD0
検索したんですけど見つかりませんでした
2020/11/13(金) 03:33:11.86ID:LLS1FCOb0
Windows では、無理じゃない?

Linux で探した方が良いかも
2020/11/13(金) 03:35:06.10ID:ZgWaq86m0
Windows使ってるってだけで教祖様の号令一下で石投げられるのがRubyコミュニティだからな
Pythonにしとき
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況