Ruby 初心者スレッド Part 67

1デフォルトの名無しさん (ワッチョイ b72c-yePO)
垢版 |
2020/12/25(金) 04:24:27.68ID:aa9Khe9z0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 66
https://mevius.5ch.net/test/read.cgi/tech/1578068134/

るりまサーチ (リファレンス検索)
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
2022/07/14(木) 22:05:19.36ID:pbUBVD7Qa
>>462
Ruby でサイト管理を自動化するとか、DBにアクセスするという話ならお返事あるんじゃない?
2022/07/14(木) 22:07:45.69ID:0DIHPMC40
>>462
WordPress, PHP, SQLそれぞれのスレでご質問願います
2022/07/14(木) 22:30:07.21ID:sv4BKnoc0
>>463-464
やはり、そうですよね。
他のスレでRubyスレに誘導されたので確認してみました。
ご回答ありがとうございます。
2022/07/16(土) 21:11:15.96ID:2WLM14wy0
Word Press のコーディングの本はない。
デザインの本しかないので、プログラミングを学べない

Ruby on Rails では黒田努の3冊の本とか、パーフェクト Ruby on Rails、
ウェブサイトではRails ガイド・Rails チュートリアル、
Dean の動画とか、コーディングの教材が多い

>>438
にも書いたけど、
PHP は、KENTAがオワコン認定したから終わった

AWS Lambda のデフォルト言語にも採用されていない。
Go は採用されたが、PHPは採用されなかった。その理由を考えてみ

漏れの結論としては、PHPでは勉強を続けることは無理。
教育環境が無さすぎる

Laravel を使っているZOZO とか、良い開発者が集まらなくて、困ると思う
2022/07/17(日) 08:18:24.34ID:Fj+O5aYq0
>>466
KENTAはRubyも否定してますが、Rubyを推す理由ありますか?

RubyやPHPを選択する理由が薄くなった
https://youtu.be/LfcgWPqMSGM?start=100
GoのみがSランク、それ以外は全てCランク
https://youtu.be/LfcgWPqMSGM?start=200

最も、いいね少なすぎてKENTAの動画に信頼を置く理由が不明ですが
2022/07/17(日) 08:39:05.88ID:l4tNS2gQr
たいした学習コストじゃないんだし悩んでるくらいなら全部やればいい
2022/07/17(日) 20:09:18.60ID:885G8LEt0
未経験からのエンジニア転職の必須教養【技術知識編】
www.youtube.com/watch?v=Q1c09rrhTjo

KENTA が勧めるキャリアパスは、Ruby on Rails → Go のみ。
Laravel, Django を選ばないように言ってる

もしポートフォリオに、Laravel, Django を選ぶと、
Railsではなく、それらを選んだ理由を聞かれて困る

技術選定・適材適所の失敗。
つまり、情報収集能力や自走力がないので採用されない

皆がRailsで勝負しているのに、なぜ君は奇をてらったのか?
正攻法を避けた理由を説明できない

もし自分が面接官なら、
Laravel, Django のポートフォリオを持ってきても、そもそも見ない。
何で、Railsで作らないの? と思うのが普通
2022/07/17(日) 22:48:10.27ID:PExlSXjI0
経験言語そのものより良いコード書いてて配属先の技術スタック吸い込んでくれる人のほうが嬉しいかな
2022/07/18(月) 00:31:46.62ID:kJA0H2Nq0
>>469
いいね300低度の動画を鵜呑みにしちゃうのね
2022/07/18(月) 12:26:25.64ID:J9TOF8GR0
ここ数年、Ruby はオワコンと言ってる香具師が多いけど、
結局、千人の素人が言うことよりも、1人のプロが言うことの方が正しい

例えば、Rubyで求人検索すると、5件しかないからオワコンだとか書いているサイトが多い

他にも、KENTAの天敵がSES のモローで、
2年前は、Railsはオワコンで、KENTAがRailsを勧めるのは、
ポートフォリオ制作で、サロンの滞在を長引かせて儲けるためで、
Java, PHP の方が稼げると勧めていた

【2022年版】Ruby on Railsの将来性

ところが最近の、YouTube のこの動画では、
Rails一色で、キャリア相談まで始めたw
Java, PHPのSESは、どうなったの?w

一方、RailsチュートリアルのYassLab は、Rubyはオワコンと言われているけど、
Railsチュートリアルは筑波大学にも採用されて、
毎年増加しているので、本当にオワコンなのか? と言ってた

プロの方が、正確な情報を持っている
2022/07/18(月) 16:48:18.59ID:B6r4rodKa
最終的に負荷の問題でgoに移植ってパターンが
二度手間だから最初からgoでやれ
なんて言われてるが
ほとんどの場合、問題になるほど流行らんて
2022/07/18(月) 18:59:57.47ID:J9TOF8GR0
Github のコピーであるGitlab は、時価総額1兆円だけど、
Rails のままで、Go へ移行しないと宣言している

GithubはGoへ移行するけど
2022/07/18(月) 19:05:12.74ID:J9TOF8GR0
米国人の動画を見ると、
2億レコード・2千社のデータがあるけど、Rails で大丈夫とか、

試作品をNode.js で8週間掛かったが、Railsでは2週間だった。
JavaScript はアホらしいとか
2022/07/18(月) 19:16:42.87ID:Bv+/UIkW0
大量レコード・マルチテナントなんて言語選定というより設計の問題じゃん プロトタイピングの速さについては同感ですが
2022/07/30(土) 08:09:12.00ID:sN86R6p40
モルモン教言語のrubyも辛い立場だな
まつもとも娘に断食させたり痛いことしてたし
2022/07/31(日) 14:48:30.69ID:ted3Whyfa
RubyとAjaxについて勉強してるんですけど
WebページからAjaxでサーバー上のtest.cgiに文字列を渡し
そのtest.cgiで処理した戻り値をWebページ側に送るのはどうやって書けば良いんでしょうか?
2022/07/31(日) 15:10:56.17ID:UGDLlV/Br
>>478
rails tutorialの最後の章にほぼそのままのあるからそれ見れば
てか今日日cgiってまだ現役なのか
2022/07/31(日) 17:46:52.91ID:ted3Whyfa
>>479
https://railstutorial.jp/chapters/beginning?version=6.0#cha-beginning
これですか?

ただフレームワークの機能じゃなく原始的なやり方を探しています
2022/07/31(日) 18:12:13.33ID:zWPrMXnN0
xhrなどのキーワードでググったほうがいいんじゃないですかね
2022/07/31(日) 19:19:38.43ID:UDF11vvTa
>>478
cgiで処理できるんならcgiがjson返せばいいだけでは?
それともtest.cgiが
・あなたの作ったrubyプログラムとは別
・戻り値が出来るのに時間がかかり
サーバーサイドからイベント送信する必要がある
みたいな事情があるのでしょうか?
2022/07/31(日) 21:37:17.25ID:ted3Whyfa
>>482
やりたいことがまさにそれで、ruby側の記述がわからないというワケです
CGIオブジェクトのどの値を書き換えるとajax側に返すjsonになるんでしょうか?
2022/07/31(日) 21:58:10.14ID:zWPrMXnN0
標準出力にJSON.generateなどで生成したjson文字列書き込めばいいんじゃないの
2022/07/31(日) 22:57:24.00ID:ted3Whyfa
>>484
標準出力で良いんですね
というかjson以外でも受け取れました
ありがとうございます
2022/07/31(日) 23:33:55.72ID:OH2jY+Nl0
原始的なCGI使ったことあるのってもうジジイだけなのかな
2022/07/31(日) 23:44:05.27ID:zWPrMXnN0
根源的な理解をするにはCGIは良い教材だと思う
フレームワークの恩恵も感じやすいんじゃないかなあ
2022/08/01(月) 16:40:55.75ID:9ms8u+Pj0
RailsってDBアクセスのコストが高いんですか?
2022/08/02(火) 07:50:45.58ID:XcZjnJFMa
>>488
比較対象次第ではあるが
オブジェクト指向と実態のギャップを埋めるために
相応のコストは掛かってる

ただまぁこのコストが気になるレベルまで積み上がってるとしたら
(Twitterみたいな大規模プロジェクトは例外として)
何かミスか勉強不足があるかと疑いたくなる
2022/08/03(水) 13:21:34.21ID:62T0uWYS0
フレームワークのオーバーヘッド気にするようなケースなんてほとんど無い気が
2022/08/06(土) 22:16:44.35ID:VFKE1n46a
フレームワークのコストよりもデータ構造の設計によって検索に処理時間かかったり、大きすぎる中間ファイルが出来たりというほうが
アカウント数が増えた時には問題になると思います
ファイルが大きくなったら何らかの形で分割しないといけないと思うのでボトルネックになるのは読み込むファイルのサイズになりそうな

ところでまた質問なんですが
配列の後ろから1つだけ任意の要素を削除する処理を書こうとしたら
rindexがnilを返したときにdelete_atがエラーになるんですが、rindexの戻り値を変数に格納して条件分岐入れるしかないですか?

ary=[1,2,3,4,1,2,3,4]
e = ary.rindex(2)
ary.delete_at(e)
p ary

# 一行にしたかったけどnilになるとエラー
# ary.delete_at(ary.rindex(9))
2022/08/06(土) 22:18:27.62ID:DL1SAF5+r
Array#.popじゃあかんのか
2022/08/06(土) 22:36:17.90ID:DL1SAF5+r
よく読んでなかったわ
可読性無視して1行に押し込みたいならこうするくらいしかないんじゃね
ary.delete_at(ary.rindex(9) || ary.size)
2022/08/06(土) 23:29:41.52ID:Mg+PC+uR0
a.rindex(2)&.tap { a.delete_at(_1) }
ActiveSupportがあればtry!
2022/08/07(日) 01:09:34.68ID:lN5DVOZra
>>493
大きいサイズ入れた時の動作仕様が今後も変わらなければいいですがちょっと不安です

>>494
おおっすごい
tapでselfの時のみdelete_at呼ばれる処理なら安全そうですね
参考にします
ありがとうございました
2022/08/11(木) 21:29:44.05ID:RYWpV6Qn0
句点Rubyおじの居場所をこっちにも作ってあげてください
2022/08/12(金) 00:35:03.18ID:GtF4IhqdM
installしなくても使えるrubyを用意すれば、ユーザ増えないですかね
まず初心者にも簡単に使い始められるようにしてユーザ数を増やす
2022/08/12(金) 01:10:01.38ID:icd+inSAd
インストールを嫌うのはWindowsユーザー特有の習慣なわけだけど、
RubyにおいてWindowsユーザーは嫌われ者だからあえてWindowsユーザーを増やすような施策はしないだろうねえ
せっかくWindowsならWSL使えで終わりにできる時代になったのだし、今更逆行させたくないだろう
2022/08/12(金) 01:22:47.32ID:Ec+72ko9M
dockerイメージでいいっしょ〜
2022/08/12(金) 01:54:30.94ID:F/Knq/Ex0
そもそもWindowsを使わければいい
2022/08/12(金) 01:58:27.77ID:3I6JE0fzr
逆にWSLじゃどこがいけないのか
2022/08/12(金) 19:29:04.08ID:Ly5UHJxV0
休日を機にrubyの勉強を始めた
もうSESで業務系・制御系客先常駐は嫌だウェブに行くんだ
2022/08/12(金) 20:34:34.61ID:EhKo6h0UM
Node.jsやGoにしときなよ
今更Rubyはじめましたなんて保守のクソ案件やらされるだけだぞ
2022/08/12(金) 20:37:25.73ID:Ly5UHJxV0
まじか。ブートキャンプなんかもチェックしてrubyを選択してるところが多かったから最初のチョイスにはいいのかと思ったんだけど
2022/08/12(金) 20:39:57.30ID:3I6JE0fzr
スタートアップでRubyも一時期に比べれば減ったけど全体として少なくはないと思うがなぁ
まあGoやれには同意
2022/08/12(金) 21:08:08.21ID:EhKo6h0UM
>>504のスキル次第かな
プログラミング教育ビジネスでRubyの採用が比較的多い理由はPHPと同じで、
技術スタックが固定されていてRoRの使い方さえ覚えれば一応仕事らしいことはできるから
一方でNodeやGoだとまずAWSやGCPでインフラを設計して、、となっちゃうから前提知識が多く、教える人にとっても難しいわけだね
504がどうかは知らないけど業務系の出身の人ってペチパー上がりのWeb系に比べりゃネットワークやDBなど基盤技術に強い人が多いから、
まずはAWS SAを取るくらいを目標にしたほうがモノになりやすいかもしれない
2022/08/12(金) 22:14:25.50ID:jxfg8mfTM
>>504
Webアプリについて学ぶならRubyからはじめるのは今でも一番効率いいよ
 
C#とかやってるならそのままASP.NET MVCやるといい
Javaの場合はSpringやSpring Bootやる前にRails一通り学んだ方が学習効率が高い
2022/08/13(土) 16:42:11.13ID:g83/7zbCM
のっけからフレームワークって学ぶ順番としてどうなんだろ
2022/08/13(土) 18:08:03.40ID:G/JCqKHoM
>>508
それなりの多くは、なっちゃってエンジニアだと思うんだけど、ほとんどコピペでフレームワークを学ぶ!?雰囲気で使っている感じやんね。
2022/08/13(土) 21:20:26.00ID:716PWe/D0
TCP/IPからやれとはいわんけど
変なブログの情報どまりじゃなくMDNをリファレンスにしてくれれば迷惑はかけないかな
2022/08/16(火) 06:37:29.62ID:nv4Pd6maa
アプリ作ってるけど、Ruby選んだのにRubyは俄然200行程度に対してJSソースがその10倍の量になった事をご報告
2022/08/19(金) 13:31:40.23ID:Gwz5c/EG0
Rubyガイジがこのスレに誘導しているみたいだけど
今更Rubyなんて流行らないし>>503でも指摘されているけど
新規案件でRubyやRailsなんて採用しないから初心者が勉強するだけ無駄だぞw
2022/08/19(金) 22:25:12.76ID:2b9NNsS1M
色んなプログラ厶スレで
rubyスレ誘導はってる人がいるよね
2022/08/19(金) 22:36:16.14ID:kD1PYwgK0
せいぜいがんばってください
2022/09/02(金) 12:46:17.31ID:SPKoKVwi0
ブロックスコープを作って、そのスコープ内だけで使える変数を作るには
どうすればいいのでしょうか?

a = 1

{
let a
p a # nil
}

p a # 1
2022/09/02(金) 13:58:50.26ID:0IIX0tzu0
a = 1
->(a = nil) { p a }[]
p a

ただrubocop(linter)に怒られる
2022/09/02(金) 15:50:30.29ID:SPKoKVwi0
>>516
サンクス
2022/09/04(日) 11:03:45.79ID:d+yqMU9C0
thenも使えそう
a = 1
nil.then { |a| p a }
p a

そもそもメソッドじゃ駄目なんだろうか
2022/09/04(日) 14:18:23.63ID:nDhKbeBy0
書式設定これが見通し良くない?
無駄な#が有効利用できるからな
採用していいぞ

n = 123
name = "山田太郎"
puts "#05d{ n }番目は#10s{ name }です"
520デフォルトの名無しさん (オイコラミネオ MM1b-366i)
垢版 |
2022/09/08(木) 11:42:53.80ID:KAp1CvD8M
今日から三日間開催されているRubykaigi(Ruby会議)にて、Wasm化の話が
議題になっているらしい。
2022/09/08(木) 21:57:50.38ID:EF/qt7ve0
>>504
YouTube で有名な雑食系エンジニア・KENTA は、下の動画で、
未経験者はシェアが高い、Ruby on Rails でポートフォリオを作れと言ってる

Django, Laravel はダメ。
特にKENTAは、PHP, Scala をオワコン認定したので、使わない方がよい

未経験からのエンジニア転職の必須教養【技術知識編】
www.youtube.com/watch?v=Q1c09rrhTjo

Railsは、KENTAのサロン以外にも、RUNTEQ、東京フリーランスのデイトラなど色々ある

Node.js など最悪。面倒くさすぎて勉強にならない。
Go も初心者向きじゃないので、
KENTAが勧めるキャリアパスは、Rails → Go のみ

KENTAのサロンのAWS 部で皆、AWSのくろかわこうへいのサロンへも入る。
くろかわのサロンの生徒、数十人で書いた本も出てる

以下がバックエンドの最短コース

Rails, Bootstrap, jQuery から始めて、
Linux, Docker, Heroku, AWS, CircleCI, Github Actions

猛者になると、Terraform, Kubernetes。
ここまで行けば、どの会社よりも上
2022/09/08(木) 22:12:49.56ID:EF/qt7ve0
>>488
データベース(DB)に、2千社・2億レコードあるけど、全く問題ないと外人が言ってた

N+1 で一々、問い合わせをしたり、
多対多などで、索引なしで総当たりみたいな事をやっているとか?

DBの実行計画を見た方がよい

ミックの本も読んだ方がよい。
副問い合わせを、case に書き換えるとか、書いてあったような気がする。
よく覚えていないけど

データベース資格の問題を解くとか
2022/09/08(木) 22:38:48.48ID:EF/qt7ve0
>>478
漏れが作った、webrick のデモならあった

require 'webrick/cgi'

class MyCGI < WEBrick::CGI
def do_GET(req, res)
res["content-type"] = "text/plain"
ret = "get\n"
res.body = ret
end

def do_POST(req, res)
res["content-type"] = "text/plain"
ret = "post\n"
res.body = ret
end
end

MyCGI.new.start()
2022/09/09(金) 16:26:23.24ID:nscVoUcha
1か月よりも前なので解決してたりします
2022/09/09(金) 16:40:11.60ID:nscVoUcha
ちょっと厄介な事かもしれないですが、配列にuniqやった時に
[1,2,3,4,2].uniq これで 一番後ろの2が削除されて[1,2,3,4]になるじゃないですか

uniqした後の結果を[1, 3, 4, 2]にしたい時は

[1,2,3,4,2].reverse.uniq.reverse

こう2回reverseやるしか無いでしょうか?
reverse消すのを試みていたんですが上手い方法が思いつきません
2022/09/09(金) 23:04:33.89ID:Un8DgV3E0
uniq後の順序に依存した実装って気持ち悪いけどドキュメント読んでみると一応保証はされてるのか
2022/09/11(日) 15:57:11.70ID:rzWFC1+la
ちょっと無理そうですね

データ構造のほうが逆順だったらreverse無しで良かったんですが
そっちはもう換えられないのでこのままにしときます
2022/09/11(日) 16:22:50.85ID:t3QuDbs+0
reverseをreverse_eachにしたら中間のArrayは無くせる
2022/09/26(月) 19:18:46.78ID:m/z6XQ/+0
scan.map.delete_if.delete_if.shuffle[1,20]
とかなっても意地で1行で書くのが真のプログラマなの?
2022/09/26(月) 20:06:14.07ID:K2FDfZLG0
突然どうした
職場のグチか?
2022/09/27(火) 14:32:01.48ID:XLkjq+Re0
delete_ifが2つ続いてるとか
mapした後にdelete_ifとか
何か良くない匂いがするとは思う
2022/09/27(火) 15:25:57.97ID:+SNgMDTOM
>>529
意図が伝わりやすければメソッドチェーンでつなげること自体は何の問題もない
ただ1行で書くかと言われれば普通は改行して読みやすくメンテしやすくする

1行でも許容できる内容かどうかは引数含めて書いてもらわないとなんとも言えない
2022/09/28(水) 17:10:39.21ID:BXnMv7Uva
最近メソッド10個くらい繋げたコード書いたけどごく当たり前のコーディング

真のPGはmethod_missingの魔術コード書ける人だよ
2022/09/28(水) 17:43:18.00ID:BXnMv7Uva
サーバー側のrubyバージョンが古い時にローカル実行用スクリプトで3.0機能使ったコード書いていいものか迷う
もしかしたらいつかサーバー側にコード持っていく可能性もある
書いてもいいのかな?
2022/09/28(水) 18:23:25.60ID:FVicjk6YM
どうせコンテナで動かすんだからどうでもいいだろ
今時サーバーにグローバルにインストールされたRubyに依存してるような腐った運用してる環境なら、イキって変なことするのはやめておけ
2022/09/28(水) 18:40:33.30ID:BXnMv7Uva
コンテナ?

3日1回程度実行するスクリプトをこっちで行うかサーバーに持ってくかという話
こっちもpc常時起動してるわけじゃないから、正確に確実に実行するならサーバーで走らせ続けるほうが楽ではあるが
ここまで書いて気づいたけどサーバーのメモリ余計に使う事になるからやっぱやめる
2022/09/28(水) 19:07:17.74ID:fVRflvZP0
サーバの古いRubyコードをモジュールで使うわけじゃないなら
枯れたPerlで書けば解決
2022/09/28(水) 21:33:55.99ID:BXnMv7Uva
ん?いや古いモジュールとかじゃなくて、
ローカル実行でもサーバー実行でも良いコードを、どちらへもっていくか みたいな話
2022/09/28(水) 22:47:37.12ID:sYls8uor0
いまどきのRubyで書くと互換性の問題がでるなら
いっそPerlで書いたらという話
2022/09/28(水) 22:59:32.60ID:7XofIB3Ar
>枯れたPerlで書けば解決
正しいこと言ってるのに何故だか寂しくなる
2022/09/28(水) 23:22:18.60ID:BXnMv7Uva
Perlはないかなー
3.0だと構築しやすい環境があって
それがサーバーバージョンだと構築できるか不明で、
Perlだと普段使ってないんで
Perlのどのバージョンでどのモジュールバージョンがインストール有効か全く知らないので、さらに構築できる可能性が薄い、、
2022/09/29(木) 09:14:41.01ID:S94uJYpZ0
こういうのもYAGNIって言うのかな?
2022/10/02(日) 23:00:07.08ID:P9RAxpp00
Perlの互換性をあなどるな!
Rubyごときの常識では測れぬぞ!
2022/10/03(月) 22:36:01.59ID:mZNxA8zN0
perlは28年メジャーバージョン変えてないだけだろw
変えたらモジュールが全く付いていかず
後付けで別言語だったことにされた始末w

7にすると言った後もスルスル詐欺。もう崩壊寸前。
2022/10/04(火) 10:04:15.06ID:bSK5XELIM
rubyも変えない基本機能だけ永年保証版をつくればいいか
2022/10/04(火) 22:14:05.98ID:UryqQ3PG0
先がないって意味では似た者同士
2022/10/05(水) 08:09:51.42ID:I8FgU9ZAa
rubyで書かれたサイトはみんな死んでperlで書かれたmixiが生き残った
これも現実
2022/10/05(水) 20:16:53.48ID:CqdeFZnf0
>>544
Perl7は、Perl5最終版をほぼそのまま引き継ぐんやろ。
せやから問題ないはず!
2022/10/05(水) 21:04:39.92ID:qbCtmsWUa
perlの省略記法が上手くrubyにくれば文句ないんだけどな
_1 ってところまでは来たけどあと少し
マジックナンバーも覚えちゃえば効率良い
2022/10/05(水) 21:34:32.70ID:2RK+LAqWr
perlの省略記法好きなんだけどプロジェクトだと使いづらいんだよな……
551デフォルトの名無しさん (ササクッテロレ Sp03-G7zZ)
垢版 |
2022/10/10(月) 21:33:09.97ID:mVWGK/1kp
教えてください。
redditのr/rubyを読んでいて、以下のようなサンプルコードを書く人がいました。

lambda do
p 1
p 2
p 3
end[]

lambda {
p 1
p 2
p 3
}[]

-> {
p 1
p 2
p 3
}[]

このサンプルを書いた人は、Procとか、lambdaを使った書き方の違いを説明したかったようなので
議論の本質から外れるのですが、
Endや}の後の[]は、どんな意味があるかお分かりになりますでしょうか。
2022/10/10(月) 21:54:11.50ID:vcZFFA/Ea
https://docs.ruby-lang.org/ja/latest/method/Proc/i/=3d=3d=3d.html
lambdaメソッドで生成したProcオブジェクトの実行です
2022/10/10(月) 22:15:52.59ID:DUxtIWo2r
callしてるんでしょ
2022/10/11(火) 14:17:27.31ID:17+/w9Hg0
手続きオブジェクト・Proc は、
Proc.new, Kernel#proc, Kernel#lambda, -> 引数{ 処理 } で作れます。
Procを呼び出すには、Prco#call, Proc#[] を使う

g = -> x, y { x + y }

p g.call( 3, 4 )
p g.( 3, 4 )
p g[ 3, 4 ]

p -> x, y { x + y }[ 3, 4 ]

これらは全て、7 と出力される

最後のものは、JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいなものか?
定義されると同時に実行される
555デフォルトの名無しさん (ササクッテロレ Sp03-G7zZ)
垢版 |
2022/10/11(火) 21:55:19.45ID:bcaE1HrEp
>>552さん
>>553さん
>>554さん
教えていただき、ありがとうございます。
こういうcallの仕方があるって知りませんでした。
556デフォルトの名無しさん (ササクッテロレ Sp03-G7zZ)
垢版 |
2022/10/11(火) 21:57:33.74ID:bcaE1HrEp
>>554さん
p g.yield(3,4)もありますね。
2022/10/12(水) 03:59:02.03ID:rjG+co3La
色々あるけどrubyは多種多様な人達がどれかを選択するためにあるっつうイメージだから
自分が使うものは限定したほうが良いよ
Proc.new proc lambdaも詳細動作ちげーし
2022/10/12(水) 23:19:24.53ID:liNTEmfl0
しかし、Perlの融通無碍さを罵倒してたんちゃううんかい!
559デフォルトの名無しさん (ワッチョイ 6714-M13Z)
垢版 |
2022/10/13(木) 17:18:00.56ID:YUGI7Erj0
Rubyっていまさら学ぶ価値ありますか?
2022/10/13(木) 18:39:16.26ID:2KzUsHD30
SQLで十分
2022/10/13(木) 20:05:37.13ID:nAMqCzQ7d
あるかないかで言えばもちろんある
他のメジャーな選択肢と比較すれば価値が低いだけ
2022/10/13(木) 20:14:27.63ID:qa/FIGCma
目的設定してないなら何を学んでも時間の無駄
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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