X



Ruby 初心者スレッド Part 63
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/04/17(火) 17:46:57.87ID:GYuBFjQi
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

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

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

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

逆引きRuby
http://www.namaraii.com/rubytips/
0371デフォルトの名無しさん
垢版 |
2018/07/12(木) 06:19:43.21ID:UjZ0bFJI
IP表示して自分で荒らし行為してますって宣言してるからどうしようもない
何度もおかしいって忠告してるのに
0373デフォルトの名無しさん
垢版 |
2018/07/12(木) 08:48:15.34ID:ax9CLQnp
>>369
ほんまこれ
なんも荒れてない時にも湧いてくるから意味不明だわ
んできっと俺も荒らしの自演認定されるんだろな
0374デフォルトの名無しさん
垢版 |
2018/07/12(木) 14:34:01.53ID:ObTIOCwS
>>368
この様にして毎回荒らされるんです
>毎回「私は荒らしじゃないよ」って言いながら
まさにこの通り
0375デフォルトの名無しさん
垢版 |
2018/07/12(木) 15:53:09.16ID:Vvh/EchF
IDを変えられるという事はこれ以降も荒らしが出てくるのか

出てくる度にチェンジって言ってやれば良いんじゃね?
0376デフォルトの名無しさん
垢版 |
2018/07/12(木) 19:06:24.92ID:oA3iTrfs
CとRubyの繋ぎで構造体をやり取りしたいんだけど、

require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
extern('int gettimeofday(void *, void *)')
Timeval = struct( ["long tv_sec",
"long tv_usec"])
end

timeval = M::Timeval.malloc
e = M.gettimeofday(timeval, nil)

if e == 0
p timeval.tv_sec #=> 1173519547
end

上のコードよりもっと簡単な方法って何かない?
0379デフォルトの名無しさん
垢版 |
2018/07/12(木) 23:05:08.42ID:oA3iTrfs
>>377
>>378

チェンジ
0380デフォルトの名無しさん
垢版 |
2018/07/13(金) 20:25:59.28ID:NaTEQMZW
Rubyはじめようと思ったけど
MacにRailsをインストールできなくてつんだかとおもたわ
0383デフォルトの名無しさん
垢版 |
2018/07/13(金) 23:44:04.04ID:2LuiASc+
運用情報板でここの荒らしが盛大に自演をミスって自爆
本当に何を考えてんだ荒らしは

>>376
[1,2,3,4].pack("iiii")
みたいな感じで配列をパックして文字列として渡す
0385デフォルトの名無しさん
垢版 |
2018/07/14(土) 22:42:07.24ID:Mvzxn60j
ttps://qiita.com/is-lab/items/e0443b79da117ed48294
homebrewとrbenvのインスコ方法はぐぐればすぐ見つかる
0386デフォルトの名無しさん
垢版 |
2018/07/15(日) 11:53:49.50ID:3AmTzi+H
つまりいちいちググらないといけない。
すぐ使えない。
0387デフォルトの名無しさん
垢版 |
2018/07/15(日) 13:39:49.06ID:jvo4M5NJ
えーそれはさすがに無理だろー!?
無知な状態からググる必要があるのは
Ruby以外のどんな言語でも同じだろー?
0389デフォルトの名無しさん
垢版 |
2018/07/15(日) 13:49:38.29ID:MJAsPMzW
>>376
dl/win32の頃はarrayをpackしてわたしてた
require 'Win32API'
api = Win32API.new('foo.dll', 'foo', 'p', 'v')
args = ["\0" * 256, "\0" * 256, "\0" * 256]
api.call(args.pack("p3"))
0390デフォルトの名無しさん
垢版 |
2018/07/18(水) 04:03:49.75ID:QgYi3fpw
ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [i386-mingw32]

この式だとシンタックスエラーと表示される。
p { a: 1, b: 2, c: 3}.map{ |k, v| [k,v * 10] }

hash_a =をつけると正常になる。
p hash_a = { a: 1, b: 2, c: 3}.map{ |k, v| [k,v * 10] }

上の式だとなにかに代入しないのでシンタックスエラーになったのでしょうか?
0392デフォルトの名無しさん
垢版 |
2018/07/18(水) 07:46:29.71ID:sfr3l4yF
p({ a: 1, b: 2, c: 3}.map{ |k, v| [k,v * 10] })

と書けばいいと思うよ

p(に限らずメソッド名)の後に{が続くとブロック引数と解釈されるので
それに続く記述は式になっていないと構文エラーになる…んじゃないかな
ちゃんとparse.y読んでないからわからんけど
0393デフォルトの名無しさん
垢版 |
2018/07/19(木) 02:03:06.31ID:Zcssm0G6
サクっとRailsを勉強したけどマイグレーションクラスの書き方が気持ち悪いな
0395デフォルトの名無しさん
垢版 |
2018/07/19(木) 13:16:20.54ID:ZMW1ym8c
静的から来たんなら一発でリファクタリング不要なの創れ
0396デフォルトの名無しさん
垢版 |
2018/07/19(木) 13:49:54.32ID:qcbfzO+6
つまり動的型付け言語ではなく静的型付け言語を作れと?
TypeScriuptみたいに、TypeRubyを作れってことですかな?
0398デフォルトの名無しさん
垢版 |
2018/07/19(木) 14:03:03.18ID:ZMW1ym8c
>>396
がんがれ
0400デフォルトの名無しさん
垢版 |
2018/07/19(木) 15:04:37.31ID:QlKeHbXC
作ろうかな。その名も「なんちゃってCrystal」
0401デフォルトの名無しさん
垢版 |
2018/07/19(木) 18:03:08.91ID:+Po4h/oD
書き込み時間みたらここまで全て自演か

質問・雑談スレ357@運用情報板
http://agree.5ch.net/test/read.cgi/operate/1530175433/
のスレの星もちって言われてる人が自演でここを荒らしてるので気をつけてね
0403デフォルトの名無しさん
垢版 |
2018/07/20(金) 03:08:49.88ID:/pvYBo5v
>>402
お前が例の荒らしなの?
というか人の質問ぶっちしてよくも荒らしてくれたな
失せろ
0404デフォルトの名無しさん
垢版 |
2018/07/20(金) 03:16:38.47ID:1XJtiOGK
この人は本物のアレな人なんで、これからもずっと居続けるだろうし、
我々が我慢するしかないのですよ
0405デフォルトの名無しさん
垢版 |
2018/07/20(金) 03:37:35.66ID:ez2x5oas
やっぱりそうだったか
ID:/HPmTQSMはNGにつっこんで無視するとして自演はどうする?
いくらでもIDを変えられるだろこいつ
0407デフォルトの名無しさん
垢版 |
2018/07/20(金) 04:10:11.54ID:VbQ1skD1
荒らしを擁護する奴とか明らかにネガキャン狙いの奴は自演だろうし、
片っ端からチェンジで良いんじゃね?
0408デフォルトの名無しさん
垢版 |
2018/07/20(金) 07:18:12.34ID:jshWd164
初心者質問ですいませんがwebサービスを実装した時の認証って一般的にはどのようにしているのでしょうか

単純なhtmlからajaxでwebサービス叩くのは簡単ですが、認証も伴うとなるとgetやpostでどう実現しているのか不思議に思いまして
0410デフォルトの名無しさん
垢版 |
2018/07/21(土) 22:42:46.60ID:R3kyCjkl
今、mrubyってのを組み込み用に作ってるんだよな確か
Cで書かれてる実装の移植じゃダメな理由でもあるの?
0412デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:14:05.95ID:BkDv2dG7
> 今、mrubyってのを組み込み用に作ってるんだよな確か

今・・・作っている・・・?

もう何年も前から聞く名前だが
終わらないプロジェクトじゃないかw
0413デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:24:14.10ID:PhJqS+u6
誰も何も要求してないから要求仕様というものが無いwwwww
打出の小槌wwwww
0415デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:41:32.25ID:H6KFndt4
補助金貰ってるから作ってるポーズだけは続けなきゃいけないんだよ
MRIのコミッタ達が飯食えなくなったらそれこそ終わりだぞ
0416デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:43:21.12ID:HTyh/4m5
Rubyと組み込みってあんま相性良さそうに思えない
Windows(GUI)とかAndroidとかもっと進出して欲しかった
0417デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:44:35.25ID:HTyh/4m5
あと最近Pythonに押されてる理由の機械学習系のライブラリとか
リソース投入して欲しい分野他にいっぱいあるのに
0418デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:45:26.60ID:H6KFndt4
そういう海外の特定企業のプラットフォームに依存したものだと補助金貰いにくいからね
機械学習は今のRubyにはできる人材がいないから無理
0419デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:45:28.95ID:R3kyCjkl
>>411
ラズパイやなんかはほぼlinuxの組み込み用ディストリだろ?
別にunix依存でも組み込みで遊べれば良いんじゃないかと個人的には思う

というかなんか荒らしが湧いてるな
0420デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:45:36.53ID:Q1eQHcZd
スマフォは端末20億ぐらいが今の所上限、人口から計算するとそうなる。
IOTになると300億ぐらいになると言われている。
だから市場としては組み込みのほうが遥かにデカイんだ。
0421デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:48:41.96ID:R3kyCjkl
もしかして来てるのは運用情報板からか?
0422デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:53:39.13ID:H6KFndt4
>>420
補助金の申請書に書くには良い説明だね
現実にはそれは詭弁で、何百億もばら撒かれるような大量生産するデバイスに、
ラピッドプロトタイピングを売りにしてるmrubyなんか使われる訳がないんだよね
一方プロトタイピングでコストを気にしないならラズパイ的なLinuxボードでフルのRuby動かせばいいわけで、完全に論理的に破綻してる
0423デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:58:26.26ID:R3kyCjkl
ああ、商業的にmrubyを組み込み市場にって事か
ホビー的なものやプログラム教材的なものも含めればそれなりに大きいし
0424デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:09:52.37ID:k8KbWpzZ
IoTで夢はひろがりんぐ
でも現実はJavaScriptとPythonに
シェアをゴリゴリ取られてる
0425デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:14:01.72ID:csMVOBEm
Ruby本体のパーサってツール使って書かれてるの?
それとも手作業?

ずいぶん前に何かツールつかって書かれてる、みたいな記事を見た記憶があるんだけど
あやふやで思い出せない
0427デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:39:36.44ID:8Nb060qV
あんなに嘘を書き込んでたネガキャン厨が出てこなくなった
何故だ?
0428デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:41:39.08ID:8Nb060qV
あ、425の質問か
俺は知らない
0430デフォルトの名無しさん
垢版 |
2018/07/22(日) 01:01:34.78ID:ZYdHEl+H
カーネル(?)オブジェクトと一緒にリンクしてローダからジャンプして起動される様な組み込み。それこそファイルシステムも無いようなものもターゲット。
0433デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:32:44.36ID:LiIRy0eu
rubyは始まる前に終わってしまった
0435デフォルトの名無しさん
垢版 |
2018/07/22(日) 16:27:40.65ID:8Nb060qV
質問を普通に読むと、
パーサジェネレータに食わせるソースを人手で書いてるのかツールで出力してるのか、
聞いているんだと思うんだが

例の荒らしは日本語が不自由なの?
0436デフォルトの名無しさん
垢版 |
2018/07/22(日) 17:19:25.94ID:bmpyz9fo
>>435
元の質問ってこれだよね
>>>>425
>> Ruby本体のパーサってツール使って書かれてるの?
>> それとも手作業?

普通に読むと、パーサのコードがジェネレータで自動生成されているのか、
あるいは手書きでゴリゴリとパーサをC言語で書いているのか?という内容で、
>>429>>432が適切なレスを返している(>>431は知ったかぶりのお馬鹿さん)

で、それに対して日本語が不自由と噛み付く>>435の日本語読解力に対して小一時間

ちなみに、Rubyの構文解析(パーズ)に関しては、
以下の文書、いわゆる RHG - Ruby Hacking Guide で詳しく解説されてる
・Rubyソースコード完全解説
 http://i.loveruby.net/ja/rhg/book/
0437デフォルトの名無しさん
垢版 |
2018/07/22(日) 17:43:50.81ID:o4y3Fl/D
>>431の本は読んだことないけど、いくらRubyistが書いた本とはいえそんな低レベルな間違いをするとは思えないから実際の記述が気になるな
独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか
字句解析器は手書きでも比較的簡単に作れるので、パーサは自動生成で字句解析は手書きというのはよくあるよね
0438デフォルトの名無しさん
垢版 |
2018/07/22(日) 18:27:03.98ID:NHUbC5Q3
標準ライブラリのRipper クラスで、字句・構文解析ができる。
文法規則から、Bisonでパーサを作る

文法規則(parse.y) → Bison → パーサ(parse.c)

「Rubyのしくみ」に書いてある
0439デフォルトの名無しさん
垢版 |
2018/07/22(日) 18:30:21.91ID:mu5XaGiF
Rubyの文法は、改行が文のセパレータだったりなかったりするので、yaccでは書きにくそうな気も。
0440デフォルトの名無しさん
垢版 |
2018/07/22(日) 21:20:30.98ID:bmpyz9fo
>>437
>独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか

Rubyの字句解析器は(次で詳しく書くけど)手書きだから、「独自に作った」には該当しないね

で、>>431の書籍は手元にあるから「独自に作った」部分を推測すると、p68 第3章の
囲み記事にある「YARV命令を間近に見てみる」の内容ではないかと思われる
この記事によると、Rubyの仮想マシン YARV の命令セットはC言語で実装されているが、
実際には insns.def という命令セット記述向け外部DSL(ドメイン特化言語)で書かれており、
Rubyで書かれた独自ツールを用いてC言語ソースが自動生成される、とある


>字句解析器は手書きでも比較的簡単に作れるので、
>パーサは自動生成で字句解析は手書きというのはよくあるよね

うん、よくある
ただし、Rubyに関しては字句(トークン)の意味が文脈によって異なるので、
字句解析器を汎用的なツール(Flex, Lex)で自動生成するのは原理的に無理
だからRubyでは字句解析器をC言語で(=手書きで)ゴリゴリ書いてる
0441デフォルトの名無しさん
垢版 |
2018/07/22(日) 21:35:50.53ID:8Bgo+1zG
   /__.))ノヽ
   .|ミ.l _  ._ i.)
  (^'ミ/.´・ .〈・ リ
  .しi   r、_) |  字句解析器はわしが独自に作った
    |  `ニニ' /
   ノ `ー―i´
0442デフォルトの名無しさん
垢版 |
2018/07/23(月) 02:58:02.91ID:4FKdTwd5
parse.yって結構な量になるだろ
まじで手書きなの?
0443デフォルトの名無しさん
垢版 |
2018/07/23(月) 03:30:44.45ID:+9p86R5q
flexはライセンスの問題があるのに対して、bisonは解決してるので、字句解析だけ手書きという場合もありそう。
0444デフォルトの名無しさん
垢版 |
2018/07/24(火) 01:24:57.08ID:USIMmUbR
やっぱり理解してないな
0445デフォルトの名無しさん
垢版 |
2018/07/24(火) 11:09:18.60ID:5ghygOWP
def hoge(ary)
  if ary.length > 10

  略
end

def hoge(ary)
  return ary.pop if ary.length > 10
  略
end
0446デフォルトの名無しさん
垢版 |
2018/07/24(火) 11:14:14.74ID:5ghygOWP
途中で投稿しちゃったすまん

hoge1を書く時にhoge2みたく1行でぱぱっと書いてしまいたくなるんだけど、あまり良くない書き方かな?
return ary.popの値を別に使うわけじゃないから却って読みにくくなってるかな?
同様にbreak(ary.pop) if 〜 みたいなこともやりたくなる

def hoge1(ary)
  if ary.length > 10
    ary.pop
    return
  end
  略
end

def hoge2(ary)
  return ary.pop if ary.length > 10
  略
end
0448デフォルトの名無しさん
垢版 |
2018/07/24(火) 12:11:36.42ID:pu7GMHRK
却ってもなにも普通に読みづらい
やる事がpopとreturnの2つあるんだから素直に別々に書け
0451デフォルトの名無しさん
垢版 |
2018/07/26(木) 23:53:19.41ID:a+YNJ8TA
ワンライナーで横着して書くのはすごい便利だぞ
0453デフォルトの名無しさん
垢版 |
2018/07/29(日) 03:07:55.01ID:F6Tmnrz5
普通、ワンライナー書いて通ったら、
早めにリファクタリングするだろ

そんな後々まで残しておかないよ
0455デフォルトの名無しさん
垢版 |
2018/07/29(日) 10:54:49.57ID:lzRBxehA
どうでもいいだろ
どうせRubyなんか後でメンテできないんだから、後でばっさり捨てても惜しくないくらいの簡易な実装を心掛けたほうがいい
0456デフォルトの名無しさん
垢版 |
2018/07/30(月) 15:23:19.49ID:i4fPEMEN
一昔前の Web プログラミング言語のトレンドは動的型付け一辺倒でしたが、
その時代も終わり、静的な型宣言を再評価するフェーズが来ているように思います。
この背景には、おそらく Web プログラミングの規模が年々肥大化しており、
動的検査のコストが増してきたのが理由にあるでしょう。
0457デフォルトの名無しさん
垢版 |
2018/07/30(月) 17:43:04.50ID:sQTL1Bwj
JSONに型情報含められたらな
0459デフォルトの名無しさん
垢版 |
2018/07/30(月) 22:30:45.90ID:vVxxmyMz
まーたネガキャンしとんのか
ほんと懲りないな荒らしは
0460デフォルトの名無しさん
垢版 |
2018/07/31(火) 00:20:31.75ID:2+1mdxB2
ステマ荒らし VS ネガキャン荒らし

ネガキャンじゃないやつは
ステマ荒らしだよw
0461デフォルトの名無しさん
垢版 |
2018/07/31(火) 05:56:12.03ID:CsKbzYRR
ステマ荒らしとか、粘着はどういうアタマしとんねん
0462デフォルトの名無しさん
垢版 |
2018/07/31(火) 05:58:46.14ID:A5W680W/
>>461
0463デフォルトの名無しさん
垢版 |
2018/07/31(火) 06:33:34.00ID:M5dn2TAr
だから大規模開発は、Haxe

ソースコードをそのまま送って、10言語に変換できる
0464デフォルトの名無しさん
垢版 |
2018/07/31(火) 06:37:15.77ID:2+1mdxB2
>>463
変換できたってライブラリを使った時点で破綻するんだから意味ない
jQueryを使ったコードをC++に変換したって動くわけない
0465デフォルトの名無しさん
垢版 |
2018/07/31(火) 07:27:58.69ID:CsKbzYRR
ス テ マ 荒 ら し

↑の粘着のセンスって最悪やな
0467デフォルトの名無しさん
垢版 |
2018/07/31(火) 08:19:37.62ID:JoTrRiyA
荒らし「ステマ荒らしVSネガキャン荒らし(ドヤッ)」


凄い語録が誕生したな
0468デフォルトの名無しさん
垢版 |
2018/07/31(火) 09:08:38.32ID:kmul1JEG
粘着さんは自演でネガキャンしないと発作が起きちゃうから、
みんな優しくしてあげて
けっして「ステマ荒らし(ドヤッ)さん」なんて呼んではだめですよ

話は変わるけど、
ブロック内のself省略したらself以外のオブジェクトが割り当てられるようなメソッドってどんくらいあるの?
■ このスレッドは過去ログ倉庫に格納されています

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