[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2ch.scのread.cgiへ]
Update time : 08/26 09:52 / Filesize : 225 KB / Number-of Response : 739
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 67



1 名前:デフォルトの名無しさん [2020/12/25(金) 04:24:27.68 ID:aa9Khe9z0.net]
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

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

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

るりまサーチ (リファレンス検索)
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

488 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 16:40:55.75 ID:9ms8u+Pj0.net]
RailsってDBアクセスのコストが高いんですか?

489 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 07:50:45.58 ID:XcZjnJFMa.net]
>>488
比較対象次第ではあるが
オブジェクト指向と実態のギャップを埋めるために
相応のコストは掛かってる

ただまぁこのコストが気になるレベルまで積み上がってるとしたら
(Twitterみたいな大規模プロジェクトは例外として)
何かミスか勉強不足があるかと疑いたくなる

490 名前:デフォルトの名無しさん (ワッチョイ ede6-M+VK) mailto:sage [2022/08/03(水) 13:21:34 ID:62T0uWYS0.net]
フレームワークのオーバーヘッド気にするようなケースなんてほとんど無い気が

491 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 22:16:44.35 ID:VFKE1n46a.net]
フレームワークのコストよりもデータ構造の設計によって検索に処理時間かかったり、大きすぎる中間ファイルが出来たりというほうが
アカウント数が増えた時には問題になると思います
ファイルが大きくなったら何らかの形で分割しないといけないと思うのでボトルネックになるのは読み込むファイルのサイズになりそうな

ところでまた質問なんですが
配列の後ろから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))

492 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 22:18:27.62 ID:DL1SAF5+r.net]
Array#.popじゃあかんのか

493 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 22:36:17.90 ID:DL1SAF5+r.net]
よく読んでなかったわ
可読性無視して1行に押し込みたいならこうするくらいしかないんじゃね
ary.delete_at(ary.rindex(9) || ary.size)

494 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 23:29:41.52 ID:Mg+PC+uR0.net]
a.rindex(2)&.tap { a.delete_at(_1) }
ActiveSupportがあればtry!

495 名前:デフォルトの名無しさん (アウアウウー Sa55-woMg) mailto:sage [2022/08/07(日) 01:09:34 ID:lN5DVOZra.net]
>>493
大きいサイズ入れた時の動作仕様が今後も変わらなければいいですがちょっと不安です

>>494
おおっすごい
tapでselfの時のみdelete_at呼ばれる処理なら安全そうですね
参考にします
ありがとうございました

496 名前:デフォルトの名無しさん (ワッチョイ 71ac-bzAd) mailto:sage [[ここ壊れてます] .net]
句点Rubyおじの居場所をこっちにも作ってあげてください



497 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 00:35:03.18 ID:GtF4IhqdM.net]
installしなくても使えるrubyを用意すれば、ユーザ増えないですかね
まず初心者にも簡単に使い始められるようにしてユーザ数を増やす

498 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 01:10:01.38 ID:icd+inSAd.net]
インストールを嫌うのはWindowsユーザー特有の習慣なわけだけど、
RubyにおいてWindowsユーザーは嫌われ者だからあえてWindowsユーザーを増やすような施策はしないだろうねえ
せっかくWindowsならWSL使えで終わりにできる時代になったのだし、今更逆行させたくないだろう

499 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 01:22:47.32 ID:Ec+72ko9M.net]
dockerイメージでいいっしょ〜

500 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 01:54:30.94 ID:F/Knq/Ex0.net]
そもそもWindowsを使わければいい

501 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 01:58:27.77 ID:3I6JE0fzr.net]
逆にWSLじゃどこがいけないのか

502 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 19:29:04.08 ID:Ly5UHJxV0.net]
休日を機にrubyの勉強を始めた
もうSESで業務系・制御系客先常駐は嫌だウェブに行くんだ

503 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 20:34:34.61 ID:EhKo6h0UM.net]
Node.jsやGoにしときなよ
今更Rubyはじめましたなんて保守のクソ案件やらされるだけだぞ

504 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 20:37:25.73 ID:Ly5UHJxV0.net]
まじか。ブートキャンプなんかもチェックしてrubyを選択してるところが多かったから最初のチョイスにはいいのかと思ったんだけど

505 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 20:39:57.30 ID:3I6JE0fzr.net]
スタートアップでRubyも一時期に比べれば減ったけど全体として少なくはないと思うがなぁ
まあGoやれには同意

506 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 21:08:08.21 ID:EhKo6h0UM.net]
>>504のスキル次第かな
プログラミング教育ビジネスでRubyの採用が比較的多い理由はPHPと同じで、
技術スタックが固定されていてRoRの使い方さえ覚えれば一応仕事らしいことはできるから
一方でNodeやGoだとまずAWSやGCPでインフラを設計して、、となっちゃうから前提知識が多く、教える人にとっても難しいわけだね
504がどうかは知らないけど業務系の出身の人ってペチパー上がりのWeb系に比べりゃネットワークやDBなど基盤技術に強い人が多いから、
まずはAWS SAを取るくらいを目標にしたほうがモノになりやすいかもしれない



507 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 22:14:25.50 ID:jxfg8mfTM.net]
>>504
Webアプリについて学ぶならRubyからはじめるのは今でも一番効率いいよ
 
C#とかやってるならそのままASP.NET MVCやるといい
Javaの場合はSpringやSpring Bootやる前にRails一通り学んだ方が学習効率が高い

508 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 16:42:11.13 ID:g83/7zbCM.net]
のっけからフレームワークって学ぶ順番としてどうなんだろ

509 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 18:08:03.40 ID:G/JCqKHoM.net]
>>508
それなりの多くは、なっちゃってエンジニアだと思うんだけど、ほとんどコピペでフレームワークを学ぶ!?雰囲気で使っている感じやんね。

510 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 21:20:26.00 ID:716PWe/D0.net]
TCP/IPからやれとはいわんけど
変なブログの情報どまりじゃなくMDNをリファレンスにしてくれれば迷惑はかけないかな

511 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 06:37:29.62 ID:nv4Pd6maa.net]
アプリ作ってるけど、Ruby選んだのにRubyは俄然200行程度に対してJSソースがその10倍の量になった事をご報告

512 名前:デフォルトの名無しさん mailto:sage [2022/08/19(金) 13:31:40.23 ID:Gwz5c/EG0.net]
Rubyガイジがこのスレに誘導しているみたいだけど
今更Rubyなんて流行らないし>>503でも指摘されているけど
新規案件でRubyやRailsなんて採用しないから初心者が勉強するだけ無駄だぞw

513 名前:882 mailto:sage [2022/08/19(金) 22:25:12.76 ID:2b9NNsS1M.net]
色んなプログラ厶スレで
rubyスレ誘導はってる人がいるよね

514 名前:デフォルトの名無しさん mailto:sage [2022/08/19(金) 22:36:16.14 ID:kD1PYwgK0.net]
せいぜいがんばってください

515 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 12:46:17.31 ID:SPKoKVwi0.net]
ブロックスコープを作って、そのスコープ内だけで使える変数を作るには
どうすればいいのでしょうか?

a = 1

{
let a
p a # nil
}

p a # 1

516 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 13:58:50.26 ID:0IIX0tzu0.net]
a = 1
->(a = nil) { p a }[]
p a

ただrubocop(linter)に怒られる



517 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 15:50:30.29 ID:SPKoKVwi0.net]
>>516
サンクス

518 名前:デフォルトの名無しさん mailto:sage [2022/09/04(日) 11:03:45.79 ID:d+yqMU9C0.net]
thenも使えそう
a = 1
nil.then { |a| p a }
p a

そもそもメソッドじゃ駄目なんだろうか

519 名前:デフォルトの名無しさん mailto:sage [2022/09/04(日) 14:18:23.63 ID:nDhKbeBy0.net]
書式設定これが見通し良くない?
無駄な#が有効利用できるからな
採用していいぞ

n = 123
name = "山田太郎"
puts "#05d{ n }番目は#10s{ name }です"

520 名前:デフォルトの名無しさん (オイコラミネオ MM1b-366i) [[ここ壊れてます] .net]
今日から三日間開催されているRubykaigi(Ruby会議)にて、Wasm化の話が
議題になっているらしい。

521 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 21:57:50.38 ID:EF/qt7ve0.net]
>>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。
ここまで行けば、どの会社よりも上

522 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 22:12:49.56 ID:EF/qt7ve0.net]
>>488
データベース(DB)に、2千社・2億レコードあるけど、全く問題ないと外人が言ってた

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

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

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

データベース資格の問題を解くとか

523 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 22:38:48.48 ID:EF/qt7ve0.net]
>>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()

524 名前:デフォルトの名無しさん (アウアウウー Sa8b-Iguz) mailto:sage [[ここ壊れてます] .net]
1か月よりも前なので解決してたりします

525 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 16:40:11.60 ID:nscVoUcha.net]
ちょっと厄介な事かもしれないですが、配列に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消すのを試みていたんですが上手い方法が思いつきません

526 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 23:04:33.89 ID:Un8DgV3E0.net]
uniq後の順序に依存した実装って気持ち悪いけどドキュメント読んでみると一応保証はされてるのか



527 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 15:57:11.70 ID:rzWFC1+la.net]
ちょっと無理そうですね

データ構造のほうが逆順だったらreverse無しで良かったんですが
そっちはもう換えられないのでこのままにしときます

528 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 16:22:50.85 ID:t3QuDbs+0.net]
reverseをreverse_eachにしたら中間のArrayは無くせる

529 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 19:18:46.78 ID:m/z6XQ/+0.net]
scan.map.delete_if.delete_if.shuffle[1,20]
とかなっても意地で1行で書くのが真のプログラマなの?

530 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:06:14.07 ID:K2FDfZLG0.net]
突然どうした
職場のグチか?

531 名前:デフォルトの名無しさん (ワッチョイ 9e66-Y+SS) mailto:sage [[ここ壊れてます] .net]
delete_ifが2つ続いてるとか
mapした後にdelete_ifとか
何か良くない匂いがするとは思う

532 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 15:25:57.97 ID:+SNgMDTOM.net]
>>529
意図が伝わりやすければメソッドチェーンでつなげること自体は何の問題もない
ただ1行で書くかと言われれば普通は改行して読みやすくメンテしやすくする

1行でも許容できる内容かどうかは引数含めて書いてもらわないとなんとも言えない

533 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 17:10:39.21 ID:BXnMv7Uva.net]
最近メソッド10個くらい繋げたコード書いたけどごく当たり前のコーディング

真のPGはmethod_missingの魔術コード書ける人だよ

534 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 17:43:18.00 ID:BXnMv7Uva.net]
サーバー側のrubyバージョンが古い時にローカル実行用スクリプトで3.0機能使ったコード書いていいものか迷う
もしかしたらいつかサーバー側にコード持っていく可能性もある
書いてもいいのかな?

535 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 18:23:25.60 ID:FVicjk6YM.net]
どうせコンテナで動かすんだからどうでもいいだろ
今時サーバーにグローバルにインストールされたRubyに依存してるような腐った運用してる環境なら、イキって変なことするのはやめておけ

536 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 18:40:33.30 ID:BXnMv7Uva.net]
コンテナ?

3日1回程度実行するスクリプトをこっちで行うかサーバーに持ってくかという話
こっちもpc常時起動してるわけじゃないから、正確に確実に実行するならサーバーで走らせ続けるほうが楽ではあるが
ここまで書いて気づいたけどサーバーのメモリ余計に使う事になるからやっぱやめる



537 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:07:17.74 ID:fVRflvZP0.net]
サーバの古いRubyコードをモジュールで使うわけじゃないなら
枯れたPerlで書けば解決

538 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:33:55.99 ID:BXnMv7Uva.net]
ん?いや古いモジュールとかじゃなくて、
ローカル実行でもサーバー実行でも良いコードを、どちらへもっていくか みたいな話

539 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 22:47:37.12 ID:sYls8uor0.net]
いまどきのRubyで書くと互換性の問題がでるなら
いっそPerlで書いたらという話

540 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 22:59:32.60 ID:7XofIB3Ar.net]
>枯れたPerlで書けば解決
正しいこと言ってるのに何故だか寂しくなる

541 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 23:22:18.60 ID:BXnMv7Uva.net]
Perlはないかなー
3.0だと構築しやすい環境があって
それがサーバーバージョンだと構築できるか不明で、
Perlだと普段使ってないんで
Perlのどのバージョンでどのモジュールバージョンがインストール有効か全く知らないので、さらに構築できる可能性が薄い、、

542 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 09:14:41.01 ID:S94uJYpZ0.net]
こういうのもYAGNIって言うのかな?

543 名前:デフォルトの名無しさん mailto:sage [2022/10/02(日) 23:00:07.08 ID:P9RAxpp00.net]
Perlの互換性をあなどるな!
Rubyごときの常識では測れぬぞ!

544 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:36:01.59 ID:mZNxA8zN0.net]
perlは28年メジャーバージョン変えてないだけだろw
変えたらモジュールが全く付いていかず
後付けで別言語だったことにされた始末w

7にすると言った後もスルスル詐欺。もう崩壊寸前。

545 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 10:04:15.06 ID:bSK5XELIM.net]
rubyも変えない基本機能だけ永年保証版をつくればいいか

546 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 22:14:05.98 ID:UryqQ3PG0.net]
先がないって意味では似た者同士



547 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 08:09:51.42 ID:I8FgU9ZAa.net]
rubyで書かれたサイトはみんな死んでperlで書かれたmixiが生き残った
これも現実

548 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 20:16:53.48 ID:CqdeFZnf0.net]
>>544
Perl7は、Perl5最終版をほぼそのまま引き継ぐんやろ。
せやから問題ないはず!

549 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 21:04:39.92 ID:qbCtmsWUa.net]
perlの省略記法が上手くrubyにくれば文句ないんだけどな
_1 ってところまでは来たけどあと少し
マジックナンバーも覚えちゃえば効率良い

550 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 21:34:32.70 ID:2RK+LAqWr.net]
perlの省略記法好きなんだけどプロジェクトだと使いづらいんだよな……

551 名前:デフォルトの名無しさん [2022/10/10(月) 21:33:09.97 ID:mVWGK/1kp.net]
教えてください。
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や}の後の[]は、どんな意味があるかお分かりになりますでしょうか。

552 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 21:54:11.50 ID:vcZFFA/Ea.net]
https://docs.ruby-lang.org/ja/latest/method/Proc/i/=3d=3d=3d.html
lambdaメソッドで生成したProcオブジェクトの実行です

553 名前:デフォルトの名無しさん (オッペケ Sr03-mdlF) mailto:sage [[ここ壊れてます] .net]
callしてるんでしょ

554 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:17:27.31 ID:17+/w9Hg0.net]
手続きオブジェクト・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 名前:デフォルトの名無しさん [2022/10/11(火) 21:55:19.45 ID:bcaE1HrEp.net]
>>552さん
>>553さん
>>554さん
教えていただき、ありがとうございます。
こういうcallの仕方があるって知りませんでした。

556 名前:デフォルトの名無しさん [2022/10/11(火) 21:57:33.74 ID:bcaE1HrEp.net]
>>554さん
p g.yield(3,4)もありますね。



557 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 03:59:02.03 ID:rjG+co3La.net]
色々あるけどrubyは多種多様な人達がどれかを選択するためにあるっつうイメージだから
自分が使うものは限定したほうが良いよ
Proc.new proc lambdaも詳細動作ちげーし

558 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 23:19:24.53 ID:liNTEmfl0.net]
しかし、Perlの融通無碍さを罵倒してたんちゃううんかい!

559 名前:デフォルトの名無しさん (ブーイモ MM86-N9Fb) mailto:sage [[ここ壊れてます] .net]
コンバージョンプログラムいろいろとあるよ
知らないだけじゃない?
Java to Kotlinとか

560 名前:デフォルトの名無しさん (オッペケ Sr03-mdlF) mailto:sage [[ここ壊れてます] .net]
AltJS系も広義ではそうじゃないか
Opalとか

561 名前:デフォルトの名無しさん (アウアウウー Sa2f-kHT+) mailto:sage [[ここ壊れてます] .net]
そういう0か100%かってのじゃなく、AIプログラミングに繋がる話だと思うけどね

562 名前:デフォルトの名無しさん (ブーイモ MM27-N9Fb) mailto:sage [[ここ壊れてます] .net]
AI翻訳を通さないと何言ってるのかわからないや

563 名前:デフォルトの名無しさん (テテンテンテン MM7f-NBC3) mailto:sage [[ここ壊れてます] .net]
>>566
プログラム言語に依るのだろう
RubyからPythonはできそうな気がするけど、C++からForthとかはあまりにも違いすぎて無理…
そう考えると、言葉よりもプログラム言語の方が違いが大きすぎるって事だな

564 名前:デフォルトの名無しさん (ワッチョイ 2b84-TyQf) mailto:sage [[ここ壊れてます] .net]
>>566
> たくさんの言語を同時相互翻訳できるのに、
一般の言語で、完全に相互翻訳できるわけない

565 名前:デフォルトの名無しさん (テテンテンテン MM7f-WdpF) [[ここ壊れてます] .net]
slack の ruby-jp ってどこかに移転しました?

566 名前:デフォルトの名無しさん (ワッチョイ 4b33-CxPv) mailto:sage [[ここ壊れてます] .net]
>>566
やればできないわけもないんやから、結局は需要がない、ということやろ。

人の言葉は意志疎通のための翻訳やからアリ。
しかし、コンピュータ言語の翻訳結果は再利用のためのリソースを期待されがちやけど、ほぼムリなんでナシ。

実際、再利用でない実行のための変換なら、多用されとる。
コンパイラもそうやし、WebAssemblyなんかそのためやろし。



567 名前:デフォルトの名無しさん (ワッチョイ 2b4f-spri) mailto:sage [[ここ壊れてます] .net]
Haxeは、JavaScript(JS)、C++、C#、Java、JVM、Python、Lua、PHPを対象とする、
クロスプラットフォームアプリケーションを構築可能で、

各プラットフォームのネイティブ機能にアクセスできる、
オブジェクト指向のプログラミング言語

主に、HTML, JS ゲーム用で、Adobe Flash の後継。
Ruby には対応していない

568 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 13:36:19.02 ID:fjjhfMGv0.net]
「改訂2版 Ruby逆引きハンドブック」の「文字列を分割する」の所で、
split で構造体を定義するのは参考になる

Struct_Fields = %i(a b c) # フィールド名のシンボル配列
Foo = Struct.new( *Struct_Fields ) # 配列展開

input_data = ":x::y:" # コロン区切り

# ["", "x", "", "y"] 内の ["", "x", "y"] を取り出す
p tmp_ary = input_data.split( ":" ).values_at( 0, 1, 3 )

p obj = Foo.new( *tmp_ary )
#=> <struct Foo a="", b="x", c="y">

569 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 20:49:59.26 ID:gz5lMMWOr.net]
書き捨てのコードならいいけど微妙じゃね

570 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 21:20:50.39 ID:Lu+vrvAs0.net]
values_atが便利だなと

571 名前:578 mailto:sage [2022/10/20(木) 13:24:43.57 ID:zGrDbuOl0.net]
values_at に、range も渡せる

# ["", "x", "", "y"] 内の ["y", "", "x"] を取り出す
p tmp_ary = input_data.split( ":" ).values_at( 3, 0..1 )

下のinput_1 の出力が、なぜ、
["", "", "y", ""] にならなかったのだろう

冒頭のコロンの前には、"" があるのに、
末尾のコロンの後ろには、"" がない

# コロン区切り
input_1 = "::y:"
input_2 = "::y:a"

p input_1.split( ":" )
p input_2.split( ":" )

出力
["", "", "y"]
["", "", "y", "a"]

572 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 14:02:28.80 ID:fK+SugQF0.net]
https://docs.ruby-lang.org/ja/latest/method/String/i/split.html
ドキュメントに書いてるが
limit < 0
で末尾も残る
なぜかは知らんがなにか他の挙動にあわせたんだろう

573 名前:578 mailto:sage [2022/10/20(木) 18:34:41.93 ID:zGrDbuOl0.net]
ありがとう。そういうオプションがあったのか

# コロン区切り
input_1 = "::y:"

p input_1.split( ":" )
p input_1.split( ":", -1 )

出力
["", "", "y"]
["", "", "y", ""]

574 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 15:14:40.66 ID:BxxcZFiKM.net]
NSA、可能な限りメモリ安全なプログラミング言語を使うことを推奨
https://developers.srad.jp/story/22/11/13/042218/

C#・Go・Java・Ruby・Rust・Swiftなど
python脱落

575 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 20:50:38.98 ID:u4oN4nv30.net]
たしかに、TMをつけてまでRubyを挙げるのに、Pythonを挙げないのは意味がわからんな。w
伝統と信頼のPerlを入れろよ!とも思うし。

576 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 21:03:39.07 ID:8tiGCKxN0.net]
VMもそこらの拡張もそこまで安全に書けてると思えんが



577 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 22:17:37.16 ID:9MQlhJri0.net]
Python は字数の多さが敗因だろうな

578 名前:デフォルトの名無しさん [2022/12/28(水) 13:12:25.93 ID:+yyf2wj20.net]
Ruby 初心者が最初に絶対に身に着けないといけない常識って
ユーザーグループのキモい人達への無条件の敬意と忠誠(を払ってるフリ)じゃね

579 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 13:30:38.49 ID:xff+tzRk0.net]
何言ってんだ、こいつ?

580 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 22:34:40.01 ID:SmTZmVnPr.net]
rails slackはそんな雰囲気ではないが何のこと言ってるんだか

581 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 22:34:54.53 ID:SmTZmVnPr.net]
railsじゃなくてruby-jpか

582 名前:デフォルトの名無しさん mailto:sage [2022/12/31(土) 14:21:30.95 ID:MXKHIln50.net]
Rubyの静的型ってみんな使ってんの?

583 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 10:40:08.74 ID:ZyLRd4DP0.net]
https://mevius.5ch.net/test/read.cgi/hp/1439005423/331
から誘導されて来ました。
JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか?

584 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 13:19:44.80 ID:TB0Q4LnJ0.net]
スレタイみて誘導がイタズラだと思わんかったん?

585 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 13:40:43.56 ID:SpXTBx4O0.net]
JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか?

586 名前:デフォルトの名無しさん [2023/01/01(日) 16:55:07.16 ID:oLAa0eV20.net]
perl好き
ruby嫌い
crystal好きだが
crystalもパッケージ増えていくとぐちゃぐちゃになるんだろうな



587 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 17:09:40.21 ID:qeO58bDma.net]
#! ruby

# -*- coding: UTF-8 -*-


require 'libev_scheduler'

Fiber.set_scheduler(Libev::Scheduler.new)


puts "Go to sleep!"

Fiber.schedule do

puts "Going to sleep"

sleep(1)

puts "I slept well"

end

puts "Wakey-wakey, sleepyhead"


exit

588 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 17:16:55.61 ID:qeO58bDma.net]
途中で送信した

https://docs.ruby-lang.org/en/3.0/Fiber.html
のサンプルを試してみたのだが、


Go to sleep!
Going to sleep
Wakey-wakey, sleepyhead
I slept well

と表示されるはずが、何故か実際に実行すると

Go to sleep!
Wakey-wakey, sleepyhead
Going to sleep
I slept well

と表示されてしまう
Fiber,schedule は、Fiber を新規作成して即時実行のはずなので、ドキュメントの通り Going to sleep が先に動くはずなのに何故順番が逆になっているのかさっぱりわからない?
どういうことだろう??






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<225KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef