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
2020/06/10(水) 23:50:47.62ID:o9Z/VPuJ0
誰がそんなメソッド使うんだよ
ユースケースが思いつかない
2020/06/11(木) 00:38:25.72ID:tsfyzied0
>>555
accumulator付きのmap的なのは関数型を中心に結構標準で用意されてるよ
scanって名前が多い
557デフォルトの名無しさん (ワッチョイ 632c-aH+M)
垢版 |
2020/06/11(木) 02:39:40.64ID:J++l+lJF0
ary = "abc".each_char.inject( [ ] ) do |ary, char|
if ary.length == 0
ary.push char
else
ary.push( ary.last + char )
end
end

p ary #=> ["a", "ab", "abc"]
2020/06/11(木) 03:14:46.66ID:cAVECZZb0
>>557
二行目以降は
ary.push (ary.last || '') + char
end
2020/06/11(木) 03:15:12.13ID:zOJFiWlV0
abbrevとは違うんか?
2020/06/11(木) 09:58:14.09ID:J++l+lJF0
>>558
ほー
2020/06/11(木) 13:02:15.68ID:tsfyzied0
>>559
ありがとう!まさに求めてたやつ
2020/06/13(土) 21:43:36.97ID:v5FJ4AgU0
rbenvでインストールしてglobalに設定したのにruby -vでコマンドが見つかりませんって出る
rbenv経由でruby入れたときってrubyパス個別に通す必要あったっけ?
VMはubuntu2004使ってる
2020/06/13(土) 22:36:10.18ID:P6/rcyg20
>>562
まずはこのスレを検索して、それがダメだったらまたな?
2020/06/13(土) 23:18:46.70ID:v5FJ4AgU0
>>563
スレ見るまでもなく解決したわ
ありがとな無能さん
初心者スレにお前は合わんから消えた方がいいよ
2020/06/13(土) 23:24:48.73ID:dJVRL38Lr
566496 (ワッチョイ 632c-aH+M)
垢版 |
2020/06/13(土) 23:34:58.27ID:V91HObFW0
>>496
に書いておいた

漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

anyenv を推奨する。asdf もあるけど、
中を見たら、結局そのまま各言語の、*env を使っているものもあるみたい
2020/06/13(土) 23:41:18.09ID:V91HObFW0
多言語の場合、anyenv, asdf を使わないと、各言語ごとにやらないといけないので面倒。
これらを使うと、rbenv, nodenv, pyenv, phpenv など、多言語を統一的に扱える

特に、Rails では、Node.js が必須だから、これらを使うべき

知らないけど、phpenv を使うと、すべてコピーされるから、
端末の起動が遅くなったとか、書いているサイトもある
2020/06/14(日) 02:30:30.04ID:6KYXSL5B0
>>564
初心者を免罪符にするな、クソクズw
2020/06/14(日) 03:56:56.29ID:n40LRnwv0
利用者の少ない言語で何やってんだか
2020/06/17(水) 10:04:48.77ID:BoY15wgZ0
利用者少ないの?
2020/06/18(木) 01:58:25.31ID:6O5cmfAx0
調査によるが、Javaは未だに物凄く利用者数の多い言語。

日本のWeb系だと、JS>Java>Ruby>PHP>・・・位だったかな。
全体だと、
JS>Python>Java>C++>C#>C>Ruby
位だったかな。
2020/06/18(木) 10:28:08.98ID:2MpifMwe0
PHPより上の位置付けでいいの?
2020/06/18(木) 12:14:36.39ID:L/uXoOmUa
javascript勉強した後だと、rubyの学習サクサク進むな
2020/06/19(金) 21:01:04.19ID:RsXwSQCp0
たのしいrubyって第6版まで出ていますが4版や5版の中古でも問題ないですか?
2020/06/19(金) 21:02:29.60ID:2U294rNY0
買わなくても問題ないです
2020/06/19(金) 21:28:00.42ID:nu2GLxXtH
>>571
PHP の地位が低すぎる
PHP はダントツにあがってもいいほどだ、wikipedia も PHP
2020/06/19(金) 21:35:05.47ID:i/tLMeO3r
>>576
お前は留数定理勉強しろや
2020/06/25(木) 08:59:13.95ID:d9h6SFkx0
初心者でRUDYを習い始めたけど
この言語はなんかやりやすいねってまだ初歩の初歩だけど
2020/06/25(木) 09:33:04.52ID:p+gLKGcc0
まずは名前を覚えてあげような
2020/06/25(木) 10:19:03.69ID:2vWcdWuv0
>>578
まぁせいぜいがんばってくれたまえ
581デフォルトの名無しさん (アウアウウー Sad3-Owb/)
垢版 |
2020/06/28(日) 15:54:16.53ID:mQb8yLJ0a
progateのrailsのコンテンツで以下のようなコードがありました。

<%= form_tag("/posts/create") do %>

<textarea></textarea>
<input type="submit" value="投稿">

<% end %>

form_tagメソッドはなぜ<%= %>で囲わなければ行けないのでしょうか?

以下のように理解していますが。

「<% 〜 %>または<%= 〜 %>の違いは何でしょうか。
どちらも中に記述されたRubyコードが実行されるのですが、
<%= 〜 %>の方は実行された結果を評価し、文字列として出力します。」

<%= form_tag("/posts/create") do %>の行は何も文字列として出力していないと思いますが。
582デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
垢版 |
2020/06/28(日) 18:31:09.43ID:VdXbwnMJ0
お気に入り数を増やすAPIを作っているんですが、1つづつ増やすのは以下でできたんですが、
変数で一気に10個ずつとか増やしたい場合どう書いたらいいでしょうか
Photo.where('id = ?', params[:id]).update_all("favorite_count = favorite_count + 1")
583デフォルトの名無しさん (ワッチョイ 7fbb-OVGN)
垢版 |
2020/06/28(日) 18:56:04.59ID:0dkV5Fxh0
>>582
コピペですまないものは全て一行ずつここで聞きながらプログラムを書く気かいな
何を作りたいのか知らんが、クラウドソーシングサイトで5000円でも払って作ってもらえよ
584デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
垢版 |
2020/06/28(日) 18:59:25.47ID:VdXbwnMJ0
>> 583
わからないならレスしないでください。うざいだけです
585デフォルトの名無しさん (ワッチョイ 7fbb-OVGN)
垢版 |
2020/06/28(日) 19:13:24.62ID:0dkV5Fxh0
>>584
そんなら他の言語に行けよ
Ruby界に高卒はいらないよ
2020/06/28(日) 20:01:39.44ID:EEQjVY4L0
ワッチョイ 7fbb-OVGNはNGだな
お前が消えろだわ
2020/06/28(日) 20:32:08.79ID:0MZ5QVvK0
>>585
Ruby界w
2020/06/28(日) 20:57:07.92ID:crkgJwf5M
高学歴なんかみんな他へ行ってしまってもう残ってないだろ
低学歴ワープアの脱出先として注目されすぎて単価の暴落がやばい
2020/06/28(日) 21:09:18.32ID:aRNwulycr
>>582
質問の要件を満たしていません。
知性をアップデートしてから出直してきてください。
2020/06/28(日) 21:26:16.13ID:pODeKu4C0
>>582
散々な言われよう

Active Recordを使ってDBの値をインクリメントする際
増分を指定するにはどうすればいいですか?
って質問なのかもしれないが

Acrive Record風のAPIを自作してて
インクリメントする場合はどういうAPIにするのがいいですか?
って質問に見えるから、ちょっと何言ってるんだろうってなる
591デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
垢版 |
2020/06/28(日) 22:01:58.57ID:VdXbwnMJ0
もうできたわ。役に立たないカス共が
2020/06/28(日) 22:08:09.77ID:aRNwulycr
最近このやり取り多くて草
2020/06/28(日) 22:58:05.40ID:zEEHZHWG0
>>581
=の有る無しで出力されるhtmlがどうなるか比較してみたら
594デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
垢版 |
2020/06/28(日) 23:17:47.40ID:VdXbwnMJ0
ここなんでこんなイライラしてる人多いんだ
プログラミングスクールに大金つぎ込んで未経験から異業種転職を試みたが
結局うまく就職できなかった奴が暴れてんのか
2020/06/29(月) 00:43:51.63ID:ze6DZkOI0
>当スレに★Python以外のプログラミング言語での回答類を書くべからず★
>「Ruby では」「Rubyでは」「某言語では」をNGワード登録推奨

テンプレを書き換えたり、すべてのスレを荒らしている荒らしがいる

荒らしは、必ず2回以上書き込む。
前のレスに「そうだよねー」みたいに、アンカーを付けて、複数人いるように見せかける

だから、荒らしの相手をしないように!
荒らしが喜ぶので、荒らしの相手をする者も、荒らしと認定されます!
2020/06/29(月) 00:54:33.79ID:ze6DZkOI0
>>581
【Rails】form_tagの使い方を徹底解説!
https://pikawaka.com/rails/form_tag

「formtag rails」で検索!

Rails Guide も、翻訳されてる

>>582
>favorite_count = favorite_count + 1
この1 を、10 に変えれば?
2020/06/29(月) 06:54:27.43ID:DbC543670
そりゃそんな人も居るだろうけど
元からアレな人も多い場所なような
2020/06/29(月) 09:08:37.94ID:L39gVdue0
>>594
ここまで読んでみたところ、イライラしてるのはお前さんだけでないの?
まあ初心者の訳分からない質問に不寛容なのが多いのは確かだけど、>>584みたいなレスしちゃったら誰もまともに相手しようなんて思わないぞw
2020/06/29(月) 10:38:59.75ID:ze6DZkOI0
すべてのスレで、荒らしが書き込んでいるだけ。
それを知らない香具師が、ムキになって怒るのが面白いから、荒らしが居着いている

荒らしを無視すればよい

荒らしはプログラマーじゃないし、ソースコードを書いたりできない。
今までに、1度も見たことない
2020/06/29(月) 19:10:25.31ID:Z1Xkd3Wv0
>>581
<form>タグを生成しています。
viewが何やってるのかよくわからない時は
ブラウザの開発者ツールを開くのオススメ
2020/07/11(土) 08:27:46.76ID:+b7VkVW+0
pacman -Ss crystal
で見つからないんだけどどうすればいい?
602デフォルトの名無しさん (ワッチョイ 812c-WQpp)
垢版 |
2020/07/24(金) 00:27:00.70ID:So4dssPK0
>>2
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/07/25

Ruby 2.6.6
Rails 6.0.3

Windows 10 では、WSL 2
2020/07/26(日) 10:48:31.22ID:HGPhhgaZa
chompとchomp!って違うメソッドなの?
2020/07/26(日) 11:19:09.80ID:7Vkc7l/lr
違うメソッドです
605デフォルトの名無しさん (ワッチョイ 8bbb-KdZo)
垢版 |
2020/07/26(日) 17:07:40.93ID:rQ/Jznn00
このところ、悪徳商法っぽいRuby教材屋が目立つな
606デフォルトの名無しさん (ワイーワ2 FF63-keh3)
垢版 |
2020/07/27(月) 10:58:24.12ID:vNtx9fDhF
reverse() と reversed() って違うメソッドなの?
607デフォルトの名無しさん (ワッチョイ 8bbb-KdZo)
垢版 |
2020/07/27(月) 19:41:14.37ID:hN1elWPu0
そら違うわ
608デフォルトの名無しさん (ワッチョイ 137c-a4SN)
垢版 |
2020/07/27(月) 22:22:40.84ID:2I3xUck90
頭悪くてプログラムしかできなかった大企業CEO一覧
http://re-file.com/18k/1677/
2020/07/27(月) 22:30:54.33ID:3jtmTLJJ0
>>608
本当の内容

【メキシコ】麻薬カルテル、ライバル組織の女を拘束、手足を縛り生きたまま解体 - 18禁グロ

▼カテゴリ - 18禁グロには一部、異様・奇怪・猟奇的・暴力シーン・グロテスクな表現が含まれていますので、閲覧制限をしています。

1. 18歳未満は閲覧禁止です。
2. 耐性が無い方は閲覧しないでください。
3. 閲覧は自己責任でお願い致します。

※上記、18歳以上で同意できる方は入室してください。
2020/08/05(水) 18:18:51.33ID:Tkocud9ba
rails6使いづらくないです?
なによりこんなNode.jsに頼るならNode.js使えばいいじゃないです?
2020/08/06(木) 14:59:04.20ID:wG3o2yHhM
>>610
Railsは開発者に一貫性の高い開発スイートとワークフローを提供するというコンセプトではあるけど、
それ以前にWeb開発のスタンダードから外れてはいけないというのが大前提だ
いくらRailsの思想に合わなかろうが、たとえばMSのClassic ASP.NETみたいな標準をガン無視した独自路線へ行くのは絶対NG
でRuby自体がもはやWebのスタンダードではなくなりつつある今、大きな歪みが生じているわけだ
2020/08/07(金) 18:42:11.83ID:ujPQ3UKLa
>>611
rails5→rails6の移行も仕様変わりすぎてて難易度高いよね
こりゃ5のサポート切れのタイミングで別言語乗り換えかな
2020/08/08(土) 09:55:56.13ID:ZxDC46c+0
別言語のは移行が簡単なのか
614デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/09(日) 19:19:40.37ID:En2E3W9T0
NokogiriのTutorialsを見てます。

html_doc = Nokogiri::HTML("<html><body><h1>Mr. Belvedere Fan Club</h1></body></html>")

このコードでHTMLモジュールのparseメソッドが呼び出せる様なのですが、なぜモジュール名の後にカッコを付ければ、parseメソッドが呼び出せるのでしょう?

HTMLメソッドが定義してあって、その中でparseメソッドが呼び出されているのでしょうか?
615デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/09(日) 19:26:01.08ID:En2E3W9T0
>>614
module Nokogiri
def HTML(s)
puts s
end
module_function :HTML

end

Nokogiri::HTML("module OK") # => module OK

なんと、HTMLメソッドが定義されてました。
616デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/09(日) 19:45:48.04ID:En2E3W9T0
[スクレイピングのためのNokogiri利用メモ - それはそれ、これはこれ](http://otn.hatenablog.jp/entry/20090509/p1)

クラス構造の理解:Nokogiri
2020/08/09(日) 20:05:29.17ID:CEZ97NChr
KernelにArrayメソッドがあるのと似たようなもんだな
2020/08/09(日) 22:21:32.35ID:sb6ynJ/q0
>>610
勘のいいガキは嫌い
619デフォルトの名無しさん (ワッチョイ ebbb-VtC7)
垢版 |
2020/08/09(日) 23:52:58.94ID:wetuPPrU0
Railsがマイクロサービスが流行って廃れたようなことを言う人もいるけどさ
サーバ側でセッション情報を保持しないのが主流になった時点でもう、重量級フレームワークは終わりだったんじゃないのかな
620デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/11(火) 07:39:46.13ID:a9fFSUGp0
>>614
NokogiriのRDocを見てます。
Nodeオブジェクトの
content, text, inner_text, to_str
メソッドは、みな同じって事ですかねぇ?

to_str以外、試してみたら同じ文字列が返って来ます。
to_strは後で試してみます。
621デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/11(火) 08:03:23.46ID:a9fFSUGp0
>>619
じゃぁ、Session情報はどこに保存?
2020/08/11(火) 11:44:25.69ID:giB5l2E50
>>620
aliasなのでみんな同じ
https://github.com/sparklemotion/nokogiri/blob/master/lib/nokogiri/xml/node.rb#L370

ドキュメントにはalias書いてなくて不親切だね
623デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/11(火) 12:51:41.54ID:a9fFSUGp0
>>622
great thx!
2020/08/11(火) 16:35:32.49ID:pA06ApZK0
>>610
JSの方が、ブロックが楽に書けるし、数値の0がfalseの意味を持っているので分かり易いし、複数行コメントに /*・・・*/ が使えて便利だし、
if 文の条件式を ()で囲むし、単一行コメントが // だし、Cと似ている。
2020/08/11(火) 16:52:37.77ID:nNWMPbxDM
if文の()?正直いらねえわ。
goみたいになくしてほしい。
if()単文;で書けて嬉しいことなんてほとんどないし。
2020/08/11(火) 20:23:27.98ID:Uga1WByLa
自動的に if then else end に展開するスクリプトを書けば
問題解決じゃないの?
2020/08/12(水) 01:36:05.08ID:UVmFgkue0
JavaScript, PHP, Python は、各型に偽があるので、10個ぐらいあって大変。
0, 0.0, 空文字列、空配列、空辞書とか

Ruby では、nil, false だけが偽だから、変数の型を考えなくて済む。
各型が偽になる条件を考えるのは、苦痛

確か、Rails には、そういう関数があったかも知れない
2020/08/12(水) 02:44:28.08ID:2N2Ra+Iw0
しかし、コンピュータは、ロジック回路や電卓の時代から、0が偽で、1が真と
決められ、TTL-ICでも、NAND, NOR,AND,OR,NOTのどれもがその規則に
従っていた。
アセンブラやマシン語でもそれが踏襲され、1 and 1 = 1, 1 and 0 = 0となる。
とこが、Rubyだけは、1 and 0 = 1 というような変なことになる。
これは受け入れがたい。
こういうコンピュータの基礎を無視するようなことしてるのは困る。
2020/08/12(水) 02:52:44.69ID:02pnoruX0
rubyの0はメモリに何も入ってないのを表すんじゃなくてNumericクラスのインスタンス
何かのインスタンスなんだから真なのは自然
rubyの全てオブジェクトという基礎を無視するのは困る
2020/08/12(水) 03:08:54.56ID:2N2Ra+Iw0
>>629
しかしそれ自体が、コンピュータの基礎とかけ離れた設計思想になっている。
コンピュータの世界では、非常に古くから0が偽であると定義されている。
2020/08/12(水) 03:12:27.26ID:2N2Ra+Iw0
数学の世界でも、真理値表では、0が偽、1が真。
andを「論理積」というのは、andを掛け算(つまり「積」)に置き換えてみると
結果が同じになり、
orを「論理和」というのも、足し算を「飽和演算」とする場合に、足し算に
置き換えられるからで、
それらは、0を偽とした場合にのみ成り立つ。
0も1も真としてしまっては、これら、論理積、論理和という言葉の定義すら
理解しにくくなってしまうだろう。
2020/08/12(水) 04:29:24.89ID:RMBTHnXK0
>>629
だったら、偽なのはfalseだけにしとけよと思う。
真偽値でなければならないところは真偽式しか書けないようにしとけと。

微妙にいいかげんなんだよな。
633デフォルトの名無しさん (ワッチョイ 468c-/3LZ)
垢版 |
2020/08/12(水) 05:16:20.30ID:pHDlYbYE0
いやいや、そもそも0や1が真になるのがおかしい
if 0 then 〜 はエラーにすべきだろう
634デフォルトの名無しさん (ワッチョイ ed35-ZVh2)
垢版 |
2020/08/12(水) 07:16:25.66ID:MEC6nwIV0
俺は、Rubyではnil, falseだけが偽とする。0を偽としないって設計は好きだな。

Conventionalな考え方とは異なるってのも別に良いじゃん。
そんなConventionalな、つまり従来の考え方を踏襲しない言語なんて一杯あるし。

これが気に入らんのは、Kotlinでfunで関数定義するやつ。
2020/08/12(水) 07:25:45.86ID:q4xTlvo30
まあ一番基本的であろうdefで作った関数(ほんとは関数じゃないというのは置いといて)が第一級市民(オブジェクトと言うと誤解を招くので)として扱われない仕様には若干古くささを感じる。
JSどころかPythonですらできるのに…
引数ゼロで呼び出しかかっちゃうんだよなぁ…
()省略文法の弊害。
今思えば必須でよかったんじゃないか?()くらい
2020/08/12(水) 08:00:48.62ID:UVmFgkue0
Ruby では、関数・ブロック(クロージャ)の2つのスコープがある。
2つないと、バグりやすい

関数は、クロージャと違って、スコープが厳しい。
C と同じで、外側の変数を通さないから、バグが少ない

Go も、Rubyを見習ったし、
JavaScript も、新たなスコープを作った
2020/08/12(水) 08:34:16.06ID:lEc3olaBM
老害の極み
1 and 0 なんてコードを書こうとするほうがどうかしてる
638デフォルトの名無しさん (ワッチョイ ed35-ZVh2)
垢版 |
2020/08/12(水) 08:38:11.02ID:MEC6nwIV0
>>637
そのとおり!

いつまでも、0が偽であるべき!
なんて考えに取り憑かれているべきでは無い。

ちなみに、俺、56歳ね!
2020/08/12(水) 08:49:24.26ID:1xAI9U35M
ぶっちゃけ今どきるびぃみたいな型なしクソ言語にしがみついてるやつらが老害だけどなw
2020/08/12(水) 09:10:24.00ID:fvB0TNCqM
>>635
オブジェクト指向原理主義的には、メソッドはオブジェクトに対してメッセージを送信した結果生じるオブジェクトの「反応」なんだよ
そこは完全にオブジェクト側に任されていて、オブジェクト自体がRubyの仮想マシン上でどう実装されてるかすらも呼び出し側が期待するべきではないの
JavaScriptだとオブジェクトが単なる連想配列であるという前提のもとでそこからメソッドを引っ張り出して呼び出すわけだけど、それはある意味オブジェクトのカプセル化を破っているというわけ
そういう思想的背景を理解すれば、Rubyのメソッドが第一級関数ではない理由は君にも納得できるんじゃないかな
まあその思想に拘ることにどれだけ実用的意義があるかは別問題で、俺もRubyが時代遅れだというのは同意するけどね
2020/08/12(水) 09:42:55.58ID:/4eCUYwNa
これ本当なのですか?

Ruby on Rails では、サーバー側がRubyで、
クライアント側が、React + Bootstrap も多いけど、

サーバー側をJavaScript(JS), Node.js にすれば、
言語が1つになるので、開発が楽になると主張する人もいるけど、

あまりに、JSは巨大だから、かえって難しくなる

だから、Rails では、Node.js, Webpack, Babel をコンパイルツールとして使っているだけ
2020/08/12(水) 09:55:36.17ID:sCXl4KJWa
> あまりに、JSは巨大だから、かえって難しくなる
ここが飛躍していて意味不明である
RailsはサーバーサイドだけであってもJSよりRubyで書いた方が簡単だと思っている奴が使うためのフレームワークであり、それに正しいもクソもない
そう思う奴が少なければ自然に廃れるだけだし、事実廃れている
2020/08/12(水) 10:22:22.84ID:UVmFgkue0
JS は最近まで、基本型であるハッシュも無かった

皆、オブジェクトをハッシュの代わりに使っていたけど、
__proto__ という属性名を使うと、バグってしまう

こういう事も知ってる香具師は、まずいない。
標準機能が少なくて、自作すると、様々な引掛けに掛かってしまう

var myObj = { };
str = 'abc';

myObj[ str ] = 1;
console.log( myObj[ str ] ); // 1

str = '__proto__';

myObj[ str ] = 2;
console.log( myObj[ str ] ); // 2 ではなく、{ }
644デフォルトの名無しさん (ワッチョイ aebb-jUmA)
垢版 |
2020/08/12(水) 10:28:49.86ID:0iqLL9pv0
Railsは、PHP全盛期に誰が使っても大穴が開かないから人気があっただけでさ
Node.js等に優秀なフレームワークが出そろった今ではもう、使う価値はほとんどないよ・・・・
2020/08/12(水) 12:33:47.08ID:RMBTHnXK0
>>643
あらさがしもいいとこ。
識別子に「__」を混ぜるヤツなんかそうそういねえ。
2020/08/12(水) 12:51:13.63ID:UVmFgkue0
使っている単語を集めるアプリで、__proto__ が使われていたら、バグる

Haxe では、この仕様を回避するために、すべての属性名の先頭に、@ を付けていた。
@abc, @__proto__ みたいにする

でも、__proto__ も、ブラウザが慣習として使っているだけのもので、
規格で決まっているわけでもないので、変わるかも知れない

もし変わったら、突然アプリがバグってしまう

各社が、勝手に決めている部分も多いから、プログラミングしにくい。
言語の標準機能が少ないから、配列の便利な操作でも、
Lodash など外部のライブラリを使うしかない
2020/08/12(水) 13:21:10.21ID:/qrw2h6bM
標準なのかRailsの独自拡張なのかの区別すら困難なほどにRailsにクソミソに汚されたRubyの悪口はやめなさい
少なくともJSにおいては、標準ライブラリを汚すような行儀の悪いライブラリが広く一般的に使用されたりはしていない
2020/08/12(水) 13:25:19.87ID:kGuev0jHr
TSでいいじゃない 人間だもの
2020/08/12(水) 14:24:08.46ID:HozojyCs0
暑くなるとどのスレにも変なのが湧くね
知ってて批評する分にはいいけど知ったか批評しかなく中身がない
2020/08/12(水) 15:43:20.47ID:8Nm8vDB1M
unixの世界では0がtrue、1を含むそれ以外がfalse。

慣習よりも実益が上回るなら、慣習に従う必要なんてない。

Swift、Kotlin、Go、Rustらのメジャーな新言語で0や1をそのまま真偽値として使える言語は一つとしてないのは、JSのtruthy/falsyはバグの温床だから。
2020/08/12(水) 17:03:15.03ID:UG+oufucH
>>650
それはシェルが扱う「プログラムの」返値のときで、しかも意味は 0 が正常終了、1 が非正常終了、と、ちょっと違う
2020/08/12(水) 17:41:31.55ID:RMBTHnXK0
>>651
testコマンドでは、0が真、それ以外が偽。

>>650が「unixの世界」とか言ったからややこしいけど、シェルだけの話でもない。
2020/08/12(水) 17:54:35.78ID:UG+oufucH
>>652
test コマンドの実体が外部の実行ファイルなら、それは >>651 のいうところの「プログラムの返値」‥‥@
test コマンドがシェルの内部に埋め込まれている場合もある(例えば bash)‥‥A

@Aいずれの場合も「シェルの話」なのでは?
2020/08/12(水) 18:29:24.32ID:RMBTHnXK0
>>653
「終了」だけの話じゃないから。
655デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
垢版 |
2020/08/13(木) 10:20:15.54ID:m1xh97jBF
>>651
unix とか shell とか C の関数とか
戻り値の扱いが統一されてないのは不自然だよね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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