Ruby 初心者スレッド Part 61 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 60
https://mevius.2ch.net/test/read.cgi/tech/1493398918/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
2017/10/10(火) 22:58:25.38ID:b+0lfNgt
>>475
ありがとうございます!
変換したのをテキストにする方法を根本的に勘違いしてたみたいです……お恥ずかしい
PCに戻ったらいろいろ試してみます
2017/10/10(火) 23:30:33.64ID:YB5j1JpR
>Markdown → HTML 変換をする
これを行うアプリは、無数にあるから、自作する意味はない

Python のSphinx とか
2017/10/10(火) 23:45:15.56ID:ACpNi8fa
練習ならむしろ自作しないと意味ない
2017/10/11(水) 02:12:44.96ID:/FuCu7BT
>>476
> rubyで関数型プログラミングを勉強しろって、何の冗談だ?

どうぞよんでくださいねw

可変性の回避 ― Rubyへの関数型プログラミングスタイルの適用
http://postd.cc/avoid-mutation-functional-style-in-ruby/
2017/10/11(水) 06:27:37.55ID:2F1JnP4A
>>478
分かりにくい書き方ですみません。
変換処理を組み込んだ CGI を作成したいのであって、独立したツールだと目的からちょっと外れてしまいます。
レンタルサーバーだと無理矢理組み込むのも大変なので……。

>>479
一応 CGI の練習がメインです。何点か自作する必要がありますので。
可能なら変換部も自作できればよいとは思いますが、上記の通り、現状だと少し難しいかなと判断しました。
興味はあるので、将来的には挑戦してみたいとは思っています。
482デフォルトの名無しさん
垢版 |
2017/10/11(水) 22:45:20.73ID:1IDk9wqH
>>480
> 関数型プログラミングを勉強しろよ

って言っておきながら出して来たのが

> 可変性の回避 ― Rubyへの関数型プログラミングスタイルの適用

かよ。ほんと、なんの冗談だ?
そういう事は組織内のコーディング規約で決めればいい事で、
緩いプログラミングをしたくてrubyをいじってる俺に押し付けるな

それに全てのオブジェクトを不変なものとして扱えって書いてあるのに
ことさらに文字列だけをあげつらって

> 文字列をfreezeしない理由なんて無い

とかマジでお前が何を理解してるのか心配になりますね
2017/10/12(木) 02:12:49.23ID:bkFDlrr0
>>480
なんかのインスタンスを書き換えるの御法度、全部newでやれ、なんて記事出されても
新しい嫌がらせだなぁって思った
この記事の人の言ってることを正しいとするなら、Stringだとこうするしかないかも

temp_string = String.new(OldString, "append_a")
new_string = String.new(temp_string, "append_b")

前衛的なご発想をお持ちのようで
2017/10/12(木) 02:13:49.80ID:bkFDlrr0
なんかキャメルとスネーク混ざったのなんでだろう、俺
JavaのStringBuilder思い出してたかも
2017/10/12(木) 02:23:49.19ID:njn1yLjW
>>483
"a" でも結局はnewしてるんで同じことだよ。
2017/10/12(木) 02:29:42.04ID:bkFDlrr0
>>485
ん、記事だと「 "a" + "b"」できるよとか書いてるのみてないのかしら
たぶん「そんなめんどくさい記法はいらね」ってレスかと思ったんだけど

となるとメモリ周りの扱いでイミュータブルかそうでないかの利点を挙げてもらわないといかんわね
2017/10/12(木) 02:34:26.64ID:bkFDlrr0
たぶんシャローとかディープとかで足かまれるか
パフォーマンス問題のチューンでもなければ

すっげーどうでもいいのでさっさと動け

って話になりそうな気もするけど(90%の問題はコレ)
2017/10/12(木) 02:36:38.72ID:bkFDlrr0
パフォーマンスの問題はchefかansibleでもありゃなんとでもなるでそ、サーバ乱設
chefが必要になるほど大規模な話にかかわったことないのがアレだけど orz
2017/10/12(木) 02:39:37.05ID:D7OLf+6g
Rubyでゴリゴリの関数型で書く気しない

Rubyは動的型付けだから
コンパイラの型チェックなどのメリットが少なく
柔軟性を失って書きにくくなるデメリットが残る
2017/10/12(木) 02:42:27.30ID:njn1yLjW
>>486
> ん、記事だと「 "a" + "b"」できるよとか書いてるのみてないのかしら

それがなんなん?
それは "a" という文字列を newして "b" という文字列をnewして
オブジェクト同士を加算する(イコール +メソッドを出している)という
意味のシンタックスシュガーなんだけど?
2017/10/12(木) 02:52:30.38ID:bkFDlrr0
>>490
言い方が悪かったのかもしれんが
「イミュータブルであると、なぜ、誰にとって、どううれしいのか」
を説明してくれって言ってるわけだが

シンタックスシュガーとかぶっちゃけどうでもいいし
イミュータブルがどうとかもかなりどうでもいい(パフォーマンス問題が出ない限りは)

今の場合
「(aaa)という理由により、文字列をイミュータブルにすると
(bbb)という利点がプログラマーにあり
(ccc)という利点がユーザーにあります」

aaa と bbb と ccc 埋めてねってくらい

俺的にはxxxであるべきとかどうでもいいんですよ、そんなん主観的な感情論
2017/10/12(木) 02:59:54.14ID:0FMeS+81
>>485
そうしないようにfrozenで最適化したんでしょ。
2017/10/12(木) 03:10:54.78ID:bkFDlrr0
んー、興味の対象が違うのかなぁ

ちょっぱやで書かしてくれる言語って意味でRuby使ってるようなところはあるので
2017/10/12(木) 03:19:31.70ID:D7OLf+6g
>ちょっぱやで書かしてくれる言語
>って意味でRuby使ってる
そうそう
Rubyは典型的なLLだからね

全部関数型で書きたければ
最初から関数型言語使うでしょ
2017/10/12(木) 03:49:53.06ID:BE/Y4M/4
「Effective Ruby」の項目47 に書いてある。
ループ内のオブジェクト・リテラルを避けよう

ループの度に、オブジェクトが作られて、すぐにガベージになるから無駄。
オブジェクトをループの外に出すか、freeze するか

ARY = %w(a b c).map(&:freeze).freeze
p ARY #=> ["a", "b", "c"]

各要素をfreeze して、配列もfreeze する

Ruby 2.1 以降は、
"a".freeze

これで定数になる
2017/10/12(木) 04:31:19.61ID:0FMeS+81
frozen_string_literal: true
2017/10/12(木) 05:21:18.77ID:K4F4DzE/
破壊的なのは全部!付きにしてくれたらよかったのに
2017/10/12(木) 14:22:49.20ID:UWf9SeC0
>>483
最近のRubyなら-"a"で可。
文字列はデフォルトでfrozenになる予定なので、すでに簡便な記法が用意されてる。
2017/10/12(木) 14:23:59.29ID:UWf9SeC0
>>497
賛成。
統一感があるようでいて、実は全然ないところはキライ。
2017/10/12(木) 18:30:04.66ID:xdbkqR2O
それはそれで冗長じゃねってオモ
2017/10/12(木) 19:50:30.80ID:TdwSq1rR
>>435 のスライドによるとruby4では
不変リテラル配列を @[1, 2, 3] で作れたり、
不変リテラルハッシュを @{ 'a' => 1, 'b' => 2 } で作れたり
出来るかもしれない

リテラル文字列も一律freezeなんてしないで @"string" っていう構文にすりゃよかったのに
2017/10/12(木) 20:21:23.42ID:D7OLf+6g
>不変リテラル配列
Pythonのタプルじゃねーか
2017/10/12(木) 22:13:17.99ID:o8TlX9Z0
Pythonってタプルの実装は配列なの??
2017/10/12(木) 22:28:59.06ID:apyXR2js
タプルはタプル
行き当たりばったりなRubyとは違ってPythonにはシーケンスというプロトコルがあって、
タプルも配列もrangeも文字列もシーケンスなので統一的に扱える
2017/10/12(木) 23:01:30.35ID:o8TlX9Z0
タプルはシーケンス!
それは他の言語と違うね
2017/10/13(金) 01:14:19.23ID:4cro6hGU
おおっ! シーケンス! シーケンス!
言語機能として組み込まれ、特定の型のみに作用するなんて流石はパイソンだ

一方RubyにはEnumeratorが用意され、あらゆるクラス/オブジェクトに組み込めるのであった
2017/10/13(金) 02:00:30.53ID:BCNZxjVm
>>506
Pythonはジェネレータでクソ簡単にシーケンス作れるよ
2017/10/16(月) 17:23:10.90ID:DLEfDRSi
a、bが配列の時、
a,sort + b とするとおかしくなる時があります。
文法上間違いなのでしょうか

(a.sort) + b で回避できますが
2017/10/16(月) 17:55:32.86ID:VwEzpL/B
>>508
間違いじゃないよ
おかしくなる例とRubyのバージョンは?
2017/10/16(月) 19:31:26.51ID:VYP6d+8H
>>508
実行可能な具体的なコードを出すと答える方も答えやすいよ
その上で何が起きるのか、本当はどうなって欲しいのかをあらかじめ言っておくとさらにいい
エラーが出るならばそのメッセージをつけて

一応聞いておくけど a,sort + b ってなってる部分はドットじゃなくてコンマなの?
2017/10/17(火) 01:16:43.61ID:2ZuBshEM
>>509
ruby 1.8.7です、古くてすみません、
ひょっとしてこれが原因なのかな

>>510
a..sort + b です
これまで何年も()なしで問題なかったのに、
かなり前の方の行を変更したらエラーになりました
エラーメッセージは保存していなかったので、
元に戻せば再現するか試してみましたが再現しませんでした
2017/10/17(火) 01:28:33.52ID:7xVjwXXT
なんかいろいろえーって感じ
2017/10/17(火) 01:29:13.96ID:R2+/oC7k
まともにタイプできんのか
2017/10/17(火) 01:38:22.03ID:G9wCIPXR
確かにいろいろえーーって感じだが
とりあえずエラーの原因箇所はそこと違ったんじゃね
2017/10/17(火) 02:08:23.51ID:mcshzNIy
>>511
>前の方の行を変更したらエラー
じゃあ普通に考えて
その変更が悪かったんじゃないの?
なんでsortが原因だと思うのか分からない
2017/10/17(火) 18:58:18.19ID:QpREnYGr
redmine 関係のスレってない?
517デフォルトの名無しさん
垢版 |
2017/10/17(火) 19:01:44.02ID:mUW+58qQ
環境が分らないし、エラーの詳細もわからない
そもそもタイプミスでエラー起こしてる可能性もでてきた

これでどういう答えを出せと言うのか
2017/10/18(水) 17:37:04.21ID:Tt9aE97q
>>517
(a.sort) + b
と括弧をつけるべきなのか、()は無くてもよいのか、どっちなのだろうという疑問でした

エラーの方はなるようにしかならないので
2017/10/18(水) 20:39:12.47ID:9LPwoyEe
>>518
カッコは不要
'+' よりも '.' の方が結合強度が強い

演算子の優先順位については https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html に書いてある
…………と思いきや、'.' が書いてねーじゃん
'::' と同じ優先度と思っていい

つまりだ、カッコをつけるつけないで挙動が変わるって言うなら
それ以前の所がおかしいのは確定的に明らか
2017/10/18(水) 20:46:38.65ID:cbmCwNcY
そもそも問題の切り分けが出来てないっぽい
コード履歴取って一行ずつ変えて行けば
どこが原因か特定できるのに
2017/10/19(木) 20:29:50.54ID:L874x3oy
>>519
>>520
ありがとうございます、()無しで問題なしということですね

どっかがおかしいのは確定ですが、気力がなくて
そのうち時間ができたら調べます
522デフォルトの名無しさん
垢版 |
2017/10/20(金) 05:01:37.78ID:VjaZCXyR
クラス毎にファイルわけたり、
多機能なクラスをシンプルなクラスに分けたりしてれば
おのずとエラー表示で何処が問題なのか分る

とは言っても、横着しちゃうのはあるあるだから、他人には言いづらい
2017/10/20(金) 12:18:01.77ID:ICaMM6Vk
Ruby自体が大クラス主義だけどね
バイナリデータもStringクラスで扱ってしまおうって考えは最たるもの
だからと言ってクラス/モジュールにちまちまと細分化しても
使う時にあれを使いたいこれを使いたいで結局ひとまとめにしちまうんだろうけど
さじ加減って大事だよな
2017/10/20(金) 21:15:16.18ID:fTxZK5d3
昔rubyの本を読んだ時はさっぱり判らなかったけど、
perlとpythonが判った後で読んだら全部最初から知ってる感じになるな
2017/10/20(金) 21:41:20.58ID:4/l8vBn9
大クラスでもメソッドは
粒度が細かい方が良いと思う
526デフォルトの名無しさん
垢版 |
2017/10/21(土) 02:31:25.02ID:KRuC/jyb
枝分かれと繰り返しで素数判定プログラム書く課題出て適当にやってたらそれっぽいものができちゃったんだけど、なんで出来たの分からないから助けて

ソースは以下

def prime(n)
if n==0 || n==1 || n<0 then return 'Not Defined' end
i=2
while n%i>0 do
if i==n-1 then return 'true' end
i=i+1
end
return 'false'
end
527デフォルトの名無しさん
垢版 |
2017/10/21(土) 02:44:37.46ID:KRuC/jyb
>>526
ソース3行目にこれ付け加えて考えてください
if n==2 then return 'true' end
2017/10/21(土) 02:52:38.24ID:DH1cG8CY
>>526
素数とはもともとそういうものだからとしか言えん
いや確かめてないけど
やり方通りに作ったのならそりゃ書いたとおりに動くよ
2017/10/21(土) 03:42:48.43ID:W+SO0xqJ
>>526

def prime(n)
return 'Not Defined' if n < 2
!(Range.new(2, n - 1).map{ |e| n % e }.include?(0))
end

Rubyっぽくないコードだったんで短く書き直してみた
2017/10/21(土) 06:35:15.86ID:/5Z1bcnO
メモ化しろ。
つまり、答え(素数)をキャッシュする

11 を、[ 2, 3, 5, 7 ]の順番で割って、割り切れなければ、11は素数だろ。
まあ、正確には、11を、[ 2, 3 ]で割って、割り切れなければ素数だが

つまり、√11 までの素数で割って、割り切れなければ素数
2017/10/21(土) 07:34:26.85ID:6mSBZ2Ul
>>523
主義なんかないだろ。
文字列かバイナリかは扱いの違いでしかないし、クラスによってはかなり細かいしな。
2017/10/21(土) 07:57:33.68ID:QO4PPX4g
>>529
> !(Range.new(2, n - 1).map{ |e| n % e }.include?(0))
(2...n).none? { |e| n % e == 0 }
2017/10/21(土) 09:06:12.98ID:8VGNYjri
存在しない配列やハッシュに値を入れようとしたら、
初期化して入れてくれればいいのに
534デフォルトの名無しさん
垢版 |
2017/10/21(土) 11:05:59.68ID:zW3TQJM1
>>530
なるほど…もう一回考えてみるわ

>>529
書き直してくれたのは感謝するし今後に役立つからありがたいけど、今回は基本的な演算の他には『枝分かれと繰り返し』しか使えないんだ
そういう課題ってことだ
2017/10/21(土) 13:58:53.09ID:AGKxZ0DW
>>531
大クラス主義についてはmatzやko1が話してる

http://www.atmarkit.co.jp/news/200712/25/ruby.html

> まつもと 1.8にもEnumeratorとGeneratorという2つの似たようなライブラリが
> あったんですけど、それが1.9ではEnumeratorに統一され、組み込みになりました。
> ここら辺、ああ、Rubyはやっぱり“大クラス主義”だなって思いますね。
>
> ――大クラス主義とは?
>
> 笹田 似たような機能のものを大きなクラスにまとめるという方針です。
> たくさんあると覚えるのも大変だし、使い分けられないから、まとめちゃう。
2017/10/21(土) 16:41:36.24ID:fsyriQnf
言語の設計と言語の使い方は別だ

クラス毎にファイルをわけたり、多機能クラスをシンプルなクラスにわけたりするのを勧めたのは、
エラー表示が効果的になる言語の使い方の話だ
分ってると思うけどそれ外にも、ワンライナーや関数型等の書き方で使いこなせるようになっている
2017/10/21(土) 18:01:16.00ID:ZBz0JWdz
>>536
だよね〜
用途に応じた設計しないとね
2017/10/21(土) 18:33:01.23ID:AGKxZ0DW
Ruby自体が大クラス主義だから利用者も大クラス主義であるべきだとは俺も思ってないよ
だからといって過剰な程にクラスを派生しまくるのは、型を束縛しないダックタイピングということもあって、
利便性が下がるんじゃないかなーとも思ってる

そりゃStringとHashとThreadが1つのクラスになっていたら発狂するけどね
2017/10/21(土) 21:09:41.23ID:6mSBZ2Ul
>>535
流れでたまたまそう思っただけなんじゃないかなあ。
ポリシーがあってないような連中だろ。w
2017/10/21(土) 21:20:09.28ID:QO4PPX4g
>>539
教条主義的なポリシーなんて要らないというポリシーなんじゃね?w
541デフォルトの名無しさん
垢版 |
2017/10/22(日) 00:40:32.24ID:kM4Rb+14
まだID変えて自演しとんのか
542デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:31:42.03ID:dJ6mfyJW
大クラス主義の話になったところで
じゃあみんな具体的に
どれくらいの大きさのクラスにしてる?

目安は一クラスあたり何行?
2017/10/22(日) 02:36:33.83ID:sDdgCD4Q
多くても500行ぐらいだろうな。
1000行いったら嫌悪感が出る
2017/10/22(日) 03:14:27.15ID:yCjESUvF
俺の場合はクラスの大きさに目安はないな
100行に満たないものもあれば1000行を超えるものもあるし
それよりもメソッド(Cなら関数)があまり長くならないように気をつけてる

具体的には80文字×25行のスクリーンからはみ出ないくらい
なんちって
2017/10/22(日) 03:14:46.78ID:rLFHcAK9
目安はサンディメッツルール
2017/10/22(日) 11:15:50.70ID:1YBr+HPt
深いネストのifがあって、Cだったら { に対応する } に飛べば範囲が判るけど、
rubyだとどうするの?
547名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 11:21:48.06ID:ammmliXf
>>546
rubynに限らず、エディターのプラグインで、対応するブラケットに飛ぶのが有る。
2017/10/25(水) 22:01:25.02ID:EQUdIXJ1
何も見ずに書けるくらいに慣れた言語はRubyが初めてで便利に使ってたんだけど、最近JavaというかKotlinやってた
んで戻ってきた

インスタンス変数が名前だけでアクセスし放題なのってすげえ便利だけどすげえ邪悪だな!
行く前はなんとも思わなかったけど@hogeとか生であちこち書いてあるとなんか不安になるようになったぞ!
2017/10/25(水) 22:17:30.49ID:aatZ8FSF
要はattrでゲッターセッター使いまくりってことだよね
Rubyは便利だけどそれが時にかえって落とし穴になる
2017/10/25(水) 22:17:41.41ID:J7YSmtyq
railsの前からruby使いで今でもrails何それな人っているんだろうか
2017/10/25(水) 22:22:21.34ID:Okq57FT4
このスレにはWinでRuby使ってる絶滅危惧種がちらほら生息しているみたいだから割といるんじゃないかな
2017/10/25(水) 22:34:52.93ID:J7YSmtyq
winでperlだとactiveperlが定番だけど、rubyだと何だろう
2017/10/25(水) 23:12:44.96ID:0GYD+24d
>>548
インスタンス変数はコンストラクタで必ず初期化するようにすれば
他の言語とそう変わらないと思う
2017/10/25(水) 23:26:24.82ID:6l1ALuPm
>>550
perlから浮気して半年しないうちにrailsが騒がれた
railsの情報はたまに見るけど未だに使ったことがない
2017/10/25(水) 23:37:36.75ID:SowBE9iE
>>553
インスタンス変数を直で使う可能性がわりと残ってるということ自体がキモいというのはあるにはある
それだと「いんすたんすへんすうはつかわないでください」と利用マニュアルやらコーディング規約やらに赤字で書くのと変わらんしな
2017/10/25(水) 23:40:57.81ID:bjMRduYA
winでrubyだけどUnicode引数が扱えないのと
パスにUnicodeが混じると動かないのは治った?
2017/10/25(水) 23:47:10.89ID:0GYD+24d
>>556
そんくらい自分で試せよ
558デフォルトの名無しさん
垢版 |
2017/10/26(木) 00:04:52.44ID:1jsCLZfy
>>548
>>553
インスタンス変数の宣言が不要って部分のこと?
それはコンストラクタで初期化すればいんじゃないの
2017/10/26(木) 00:27:50.55ID:Bn4jQy1s
kotlinはインスタンス変数を直接作れないし触れない
同名のセッターとゲッター経由でのみアクセスする
Rubyでいうとこのattr_accessorだけしか存在しない状態

まあ他の言語の話はどこまでも広がるから程々に
2017/10/26(木) 00:44:34.86ID:+U1JRDPb
インスタンス変数を直接使うよりattr_readerとかattr_accessorを経由するようにしてるなあ
主にタイポ対策として
2017/10/26(木) 00:52:35.48ID:1jsCLZfy
@で直接インスタンス変数を使うか
アクセサを経由するかってことか

クラス内なら直接使ってもいいと思う
クラス外からアクセサを使う方が問題
2017/10/26(木) 01:37:32.31ID:bdhLTBwb
>>556
すべてのOS・言語で、
ユーザー名・PC名・パスなどのシステム要件には、半角英数字しか使うな。

誰も日本語ではテストしていないし、すべてのアプリでテストしていないから

半角空白も使うな。
「a b」などは、2つの引数に扱われてしまうから、バグる

Unicode の4バイト文字などには、多くのアプリが対応していない。
例えば、中国の地名の「深せん」の「せん」は、TeraPad では対応していない

こういうアプリが一杯ある。
特に、圧縮・解凍アプリでは、日本語のパスは使えない
2017/10/26(木) 01:51:18.80ID:1RkkpTof
>>559
通常はプロパティのみで実体の変数にアクセスする場合に特別なキーワードを使う
https://kotlinlang.org/docs/reference/properties.html#backing-fields

>>560
privateなattr_accessor/attr_writerを用意するより
@fooのほうがインスタンス内部の状態にアクセスしてるのが直感的に見えるから個人的には好みかな
2017/10/26(木) 01:57:55.82ID:1RkkpTof
>>562
今どきUnicodeのパス名くらいはテストしてるだろ
半角スペースもちゃんとクウォート対応して作ってればいい話
コマンドラインで書く時に少し面倒になるくらい
2017/10/26(木) 07:56:59.67ID:BUcDTzfg
ディレクトリツリーを再帰処理したときにディレクトリ名に“[]{}”があって
Dir.glob(File.join(subdir,"*")) # subdir = "photo[2017]"
てな感じでハマった
2017/10/26(木) 08:30:22.65ID:Bn4jQy1s
globは昔からへなちょこだよ
入ってるファイル名がglob安全だと事前にわかってるディレクトリにしか使ったらだめだよ
567デフォルトの名無しさん
垢版 |
2017/10/26(木) 11:34:08.16ID:v4GCj7LM
同意せざるを得ない
568デフォルトの名無しさん
垢版 |
2017/10/28(土) 05:14:14.61ID:3gpZJih/
winのRubyで日本語できないとか言ってる奴いるけど、
UTF16Nの文字コードも知らないで適当にやってるからじゃないの?
569デフォルトの名無しさん
垢版 |
2017/10/28(土) 11:08:15.45ID:YrbVG7kU
原因は一つだけじゃない
エンコ間違いを文字化けと言ってしまうくらい
知識が貧弱すぎる
2017/10/28(土) 11:16:36.37ID:xCMEGXaW
正確には、エンコードの推測間違いが文字化け
571デフォルトの名無しさん
垢版 |
2017/10/28(土) 11:19:57.77ID:YrbVG7kU
それも違うよ
本来文字化けは通信回線のエラーで発生するものを指してた
2017/10/28(土) 11:56:59.11ID:outOme0N
まず、環境変数やコマンドラインオプションの -E で utf-8 を指定しないと、ARGVがutf-8にならないので
正確なコマンドライン引数を取得できない*バグ*がある。
さらに、ディレクトリのファイル一覧を取得する時に、encodingオプションを指定してutf-8にしないと、
ユニコードのファイル名を取得できないという*バグ*がある。
作ってる人たちは仕様だと思ってるが、こんなの誰も嬉しくないし、単なるバグ。
だからrubyinstaller2の人も-Eutf-8をデフォルトにしようとした
ソースコードがデフォルトでutf-8の時代に、何でこんなことになってるのか理解しがたい
でもそれ以外のことは相当windowsのために頑張ってくれている
pythonよりマシでnode.jsより劣ってる
2017/10/28(土) 17:18:37.05ID:GkEAGE6K
windowsならしょうがないね
2017/10/28(土) 17:41:59.12ID:yTnVd91+
根本的にスクリプトのパスをUnicodeで扱ってないから、スクリプトにlocaleで表せないUnicodeの文字が含まれるだけで実行できない糞仕様
575デフォルトの名無しさん
垢版 |
2017/10/29(日) 15:18:20.54ID:jMcUbzmZ
やり方知らないだけじゃないの?
2017/10/29(日) 18:20:39.60ID:cEiLc8+m
やろうと思えばできる、とデファクトがデフォルトではない、との間には深くて深い溝が
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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