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/08/26(土) 22:33:08.15ID:MD6b0JEZ
パターンマッチングを参考に取り入れたはいいけど、つまみ食い的に取り入れたために
きちんとした仕様を策定できなくて魔境になっちゃった

…という感じでは?
2017/08/26(土) 22:33:22.56ID:0rCQx/Jc
いつもの人だから返事しないでおく
2017/08/26(土) 22:33:49.77ID:azDqTcfP
>>45
パターンマッチングと多重代入は別もの
destructuringとかunpackingする部分が共通してるだけ

MLはしらんけどHaskell含めて関数型言語には
基本的に多重代入って考え方がないからそう呼ばないだけだと思うよ
2017/08/26(土) 22:35:01.43ID:r2wyjps1
>>50
上でもちらっと言われてるがただの変数代入なら複雑ではない
片方がメソッドの評価であるような場合何が何やらわからなくなる
2017/08/26(土) 22:36:22.65ID:r2wyjps1
>>51
スレに要らない人間だってあれだけ言われたのにね
脳の壊れた人間は厄介ですよ
2017/08/26(土) 22:37:22.86ID:MD6b0JEZ
魔境ってのも、仕様的魔境なのか、実装的魔境なのか、その辺があいまいだよねー
2017/08/26(土) 22:39:13.12ID:gwXj5lMG
>>49
えーと、つまり代入の左右の扱いが等価って事?
何持ってこようとお構いなし?
57デフォルトの名無しさん
垢版 |
2017/08/26(土) 22:58:24.74ID:CwpB94hG
>>53
どうやら >>46 のお仲間みたいですね、しかたないから具体的なコードで

Ruby の場合:
 $ irb
 irb(main):001:0> [[1,2], [3, 4], [5, 6]].map { |(x, y)| x + y }
 => [3, 7, 11]

SMLの場合:
 $ sml
 Standard ML of New Jersey v110.79 [built: Sun Oct 4 14:45:06 2015]
 - map (fn (x, y) => x + y) [(1, 2), (3, 4), (5, 6)];
 val it = [3,7,11] : int list

Ruby のメソッド Enumerable#map の引数であるブロックに相当する
SML の構文 が “fn” <pat> => <expr> になる
>>45 の代入の構文は “val” <pat> = <expr> でしかない

さらに具体的なコードをお求めなら、以下を読んで:
 関数型プログラミングにおけるクイックソート・アルゴリズムの実装
 http://www.h6.dion.ne.jp/~machan/misc/qsort-in-fp.html
58デフォルトの名無しさん
垢版 |
2017/08/26(土) 23:09:14.73ID:CwpB94hG
>>56
直感的に言えば、単一化の概念はそれで合ってる(左辺と右辺を同等に扱う)
そして Prolog に代表される論理型言語では、変数とは未知の存在を表し、
単一化により未知を未知のまま扱う(=計算する)ことができる
それは、人間の持つ自然な「等しい」という高度で抽象的な概念により近いはず

これ以上はスレ違いになるから、続きは Prolog スレで
2017/08/27(日) 00:07:15.35ID:b/YM8B/u
a,=[1,2,3]
こういうのがキモい。
そうしたいときはあえて(a,)とカッコをつけて書くようにしてる。
2017/08/27(日) 01:23:32.91ID:1JS8bjMA
>>49
LispよりPrologの方が難しいと思うけどな
Lispは表記が読みにくいだけで動作はシンプルだけど
Prologは言語の挙動を理解するのが大変
2017/08/27(日) 03:30:57.21ID:dsz1YMQy
Ruby, JS スレには、関数厨が、わんさか湧いてくるw

魔境に、片足を突っ込んでる、言語だからかな?w
2017/08/27(日) 07:12:35.01ID:OA8i5cQF
「回答」ではなく「自分の知っていること」を長々と書くだけだから同定と回避はしやすいね
2017/08/28(月) 11:35:58.16ID:hSp+oBxP
https://togetter.com/li/1021897
"型は絶対書きたくない" "Ruby3は東京オリンピックまでに
" Rubyの父Matzによる、「楽しいプログラミング体験を届けるために」
#rubykaigi 2016 Keynote

↑これを読んで本当に安心した
少なくともあと10年はRubyで型を書かなくてもよさそうな雰囲気
これで他の言語よりさらに10年遅れることになる
そのころにはすっかり浦島太郎でゴミになってることだろう、良かった
いや、もうすでにゴミなんだろうけど、その認識がもっと広まって
周知徹底していく過程が楽しめる
それでも完全放置プレーされてて単に周りから取り残されて風化していくんなら
それは自然現象なのでありふれてるっつーか、俺自身も含めて皆そうだしアレなんだけど
Rubyの良いところは頑張るんだけど方向性がおかしくてダメ、無意味な努力というのが良い
どのあたりで「折れる」のか、はたまた意地を貫き通して本当に「終わる」のか、見ものだ
これだけ啖呵を切って自ら退路を断ったのだから、ぜひとも華々しく散ってほしい
2017/08/28(月) 12:11:24.54ID:hSp+oBxP
このようなことが本当に可能なのかどうなのか
メソッドが動的に生える場合は対応できないのは仕方が無いとしても
代入という代入を過去も含めてすべて精査しなければ、その変数に
何が入りえるかなど分かりようもない
プログラムが分岐していたら可能性が二つに分岐する
もっと端的に、配列のようなコンテナで
静的型言語なら同じインターフェースを持ったオブジェクトしか入らないわけだが
Rubyのような言語の配列はごった煮状態になりえるわけで・・・
さらに言えば変数への代入にしたって、同じ変数を、使いまわすかもしれない
変数へアクセスするときに適切に型スイッチしているならそれは合法なコードだが
検査ツールはそのことを検出して合法と決断を下さなければならない
型推論もコードを追わないといけないし、適切に使われているかもコードを追わないといけない
両方が泥団子であり、全くの不毛である
型という仲介を通して両者をつなぐとスッキリすることは既に十分実験されていて
分かり切ってるのにあえてこのような泥団子を好む人はいない
これから先このような無意味で壮大なことに労力を割くことで
Rubyのその他の面の進歩はどんどん遅れて、周りから取り残されていくだろう
10年単位で
是非そうなってほしい
2017/08/28(月) 12:31:29.95ID:hSp+oBxP
動的型が当たり前の時代が有ったり、静的型が当たり前の時代が有ったり
両社は振り子のように揺れ動くものであるから
今は静的型が人気だが、いづれ動的型の時代が来るかもしれない
今、安易に静的型を取り入れると、そのときになって対応できなくなるから
Rubyには静的型を入れない

↑という言い分だが、そもそもが全くの嘘、でっち上げである
思い出してみれば分かるが、動的型の時代など、「無かった」
C言語が登場して以来、ずっと静的型の時代だっただろう
時系列で言えば、C → C++ → Java → C# という感じの登場順かな
これらの言語は今でも人気がある、というか、先頭集団
ずっと継続して人気者のグループ
これらの言語にRubyが勝ってた時代があったか?
だから振り子のような現象というのが、もう、真っ赤なウソ
動的型言語の時代などなかったし、これから動的型言語の時代が来ることもない
とにかくあの人は隙あらば嘘をついて人をだまそうとする
例のカルト宗教の勧誘で得たテクニックなんだろうか、知らんがな

もう一つの嘘は、動的型言語でもJavascriptのように速度が速い言語もある
だから速度を上げるために静的型を入れる必要はない、っていうやつ
まぁ嘘っつーかアレだが、Javascriptは物凄く多大な労力かつ非常に高度なことをやって
あの速度を得ているわけだが、そんな実装はRubyでは無理って自分で分かってる癖に
しれっとこういうことを言う
だったら今すぐV8エンジン並みの実装用意しろよ、出来るんだろ?
2017/08/28(月) 15:02:32.66ID:eUKA+ayD
誰も読んでないのによくもまあ長々と
2017/08/28(月) 15:05:07.43ID:Oh+Q2Yvx
>>66
反応したのはあなただけですよ
2017/08/28(月) 16:00:48.15ID:sXxziykI
RubyだけでなくPythonやJavaScriptのような
広く普及している動的言語があるのに
一方的にゴミ呼ばわりする方がゴミ
2017/08/28(月) 17:02:01.88ID:hSp+oBxP
本当にそうであろうか
Pythonは型アノテーションを入れて過去の過ちを修正して未来へ向かおうとしているし
JavaScriptは実際ゴミ呼ばわりで、静的型のTypeScriptが評判良いし
まぁそのうち静的型の機能を取り入れるでしょう
あと、PHPも静的型の機能を取り入れているし
Perlも静的型の機能を取り入れている
徐々に周りは進歩している
ちょうど資本主義を受け入れた中国のようだ
Rubyだけが時が止まってて取り残される恰好なのに
さらに時を止めるつもりらしい ->「型は絶対書きたくない」
まるで北朝鮮といったところか
今は東京オリンピックまでに大陸間弾道ミサイルを作りたいと張り切っている
斜めっぷりというか、掛け違えたボタンというか
一回崩壊しないと正すのは無理なのかもしれないな
2017/08/28(月) 17:35:32.65ID:klwQ7++Z
プログラマが本当に必要だったもの:nullセーフ

という気がしている
2017/08/28(月) 18:28:27.74ID:6lvjC5oK
海を越えられないから自転車は使えないとか言って近所のコンビニに行くだけのために
テポドンを持ち出してくるようなゴミクズがまた出たのか
2017/08/28(月) 18:38:27.51ID:G4YrO8Fv
なぜ、ある言語を批判したいというモチベーションが沸くのか不思議
オカンの料理を食うだけの穀潰しによって、オカンの料理は批判されるのである
2017/08/28(月) 20:23:51.87ID:sXxziykI
>>69
>まるで北朝鮮といったところか
>斜めっぷりというか、掛け違えたボタンというか
>一回崩壊しないと正すのは無理なのかもしれないな
自己紹介乙
2017/08/29(火) 09:43:04.32ID:sLm25inw
東京のIT企業が松江に進出08/28 20:15nhk
松江市の技術者が開発したプログラミング言語「Ruby」を活用したシステム開発
を目指して、東京に本社を置くIT企業が松江市に進出することになりました。
新たに進出するのは東京に本社を置くIT企業、「パソナテック」で、28日、
吉永隆一社長が県庁を訪れました。
県庁では調印式が行われ、吉永社長と溝口知事、それに松江市の松浦市長が互いに
連携して事業を進めていくとする覚書にサインをしました。
「パソナテック」は新たな事業所を松江市朝日町のビルの一室に設けて、9月から
運営を開始します。
今後3年間で10人を採用する計画で、松江市の技術者が開発したプログラミング
言語「Ruby」を活用して企業の管理システムの開発を手がけるほか地元のIT
人材の育成などにも力を入れることにしています。
県や松江市も雇用の創出や地域産業の高度化につながるとして企業への助成など支援
を行うことにしています。
吉永社長は「人口減少や高齢化などの課題がある中、地方であっても優秀な人が活躍
できる環境を、産官学で連携しながらつくっていきたい」と話していました。
2017/08/29(火) 15:10:08.29ID:pis/sDRy
新スレ記念
http://type.jp/et/log/article/moimeshi_009
8月30日(水)BSプレミアム後21:00 - http://www6.nhk.or.jp/nhkpr/post/original.html?i=11387
https://www.nhk.or.jp/kokokoza/tv/syakaijouhou/intro.html
http://weekly.ascii.jp/sp/ikezawaayaka.html
http://weekly.ascii.jp/elem/000/000/397/397124/
76デフォルトの名無しさん
垢版 |
2017/08/29(火) 15:46:16.01ID:JnW2kyj+
スレチかもしれませんが質問です。
爆サイというサイトで「なりすまし防止」でパスワードを入れたんですが、解析されて同じトリップを相手に使用されました。
気持ち悪くて怖くなり、それ以来やっていません。
62^4=14776336通りもあるパスワードをどうやって解析したんでしょうか?
もし解析ができるなら、やり方までは聞きません。
解析ができるのかできないのかを知りたいです。お願いします。
77デフォルトの名無しさん
垢版 |
2017/08/29(火) 16:15:40.30ID:BJnPfb6J
>>76
本当に62^4通りなのでしょうか?
もしそうなら、総当たりで調べたのでは無いでしょうか?
2017/08/29(火) 16:27:04.06ID:Y/wjG5sQ
>>74
全然関係ないがパソナルームを思いだす
2017/08/29(火) 16:28:08.65ID:Y/wjG5sQ
>>76
Ruby関係ないが
「1234」みたいな簡単な
パスワードはバレてること多いぞ
80デフォルトの名無しさん
垢版 |
2017/08/29(火) 16:44:27.99ID:JnW2kyj+
>>77
数字と英文字の小文字も入れられるんで、その数字になります。
総当たりと言っても、ほんの数分で解析されてしまいました。
カメラから「おまえの顔も見えているぞ」とまで言われました。
ハッタリかと思っていたんですが、なりすまし防止のパスを解析されて、正直おどろき、どこからどこまでがハッタリなのか判らなくなってしまいました。
>>79
数字と英文字を混ぜたパスだったのですが、なぜか解析されてしまいました。

ご返答ありがとうございます。
2017/08/29(火) 16:47:02.27ID:pis/sDRy
>>76
トリップはぶつかることがある
元のパスワードと違うパスワードでも同じになるから
正確には62^4=14776336通り以下ってことになる
82デフォルトの名無しさん
垢版 |
2017/08/29(火) 16:49:49.66ID:BJnPfb6J
Ruby + Sinatra + thinでWebアプリの開発を始めました。
ruby Server.rb -p 8080でthinを起動し、ブラウザで表示を確認しながら作ってます。
Server.rbを編集する毎にthinをstop'n'runしてます。
thinを終了する事なくServer.rbを編集結果をブラウザに反映させる事はできないでしょうか?
いちいちCTRL+C to stopしたく無いです。
2017/08/29(火) 16:58:57.30ID:iJMW5miQ
>>82
require 'sinatra/reloader'
84デフォルトの名無しさん
垢版 |
2017/08/29(火) 17:04:48.19ID:JnW2kyj+
>>81
そうなんですか、参考になります。
しかし、ほんの数分で一致させるなんて偶然では無理ですよね?
解析ソフトのようなものが存在してるんでしょうか?
不思議で仕方ありません。
クレクレで、すみません。
85デフォルトの名無しさん
垢版 |
2017/08/29(火) 17:10:47.07ID:BJnPfb6J
やったぁ。解決
Sinatra/reloader
つかうのね。
86デフォルトの名無しさん
垢版 |
2017/08/29(火) 17:11:11.49ID:BJnPfb6J
>>83
THX
2017/08/29(火) 18:15:11.07ID:yPA5+HL7
>>84
スレチ
88デフォルトの名無しさん
垢版 |
2017/08/29(火) 20:28:38.26ID:I7TvgsKU
>>87
すみません。どこのカテゴリーで尋ねればよろしいでしょうか?
2017/08/30(水) 00:35:21.68ID:RWIoRzHK
どうしてRubyスレで聞こうと思ったのか?
90デフォルトの名無しさん
垢版 |
2017/08/30(水) 00:38:57.38ID:LiEDh+or
>>89
カテゴリー→プログラム→初心者という文字発見→スレチ覚悟で質問→マルチ扱いで、早速いじられる
こんな感じです。
ここなら専門的な人達が揃ってると思ったの質問してみました。
2017/08/30(水) 00:46:01.29ID:RiHZq49u
セキュリティ板とかインターネット板の
質スレで聞くか自分でスレ立てるか
2017/08/30(水) 00:51:49.93ID:3Xe8rFR3
まだこっちのほうがいいんじゃないの
スレ立てるまでもない質問はここで 146匹目
https://mevius.2ch.net/test/read.cgi/tech/1487825717

てかスレチを承知していたのなら初めから誘導先を質問すればいいのに
93デフォルトの名無しさん
垢版 |
2017/08/30(水) 00:58:13.48ID:LiEDh+or
>>91
スレは立てられないんです。
このホストでは……という言葉が出てきてしまいまして。
すみません。ありがとうございます。
>>92
ご親切にありがとうございます。
2017/08/30(水) 06:12:43.86ID:CwX8twwO
>>74
大阪のハローワークでも、キヤノンなど、パソナテックの募集は多い。
つまり、できる人が見つからない

スレ違いだけど
95デフォルトの名無しさん
垢版 |
2017/08/30(水) 06:32:03.89ID:0BSTFJq7
>>94
>パソナテック

プログラマの派遣会社
96デフォルトの名無しさん
垢版 |
2017/08/31(木) 16:34:34.12ID:wERnZJ6b
>>1
【緊急】
すき家の定食に衝撃異物!
ずさんな管理体制が明らかとなった
指摘したその時!わざとらしく店員が声をあげごまかした!

229 名前:やめられない名無しさん [sage] :2017/08/29(火) 07:31:54.64 ID:EfhOnUp0
俺の朝はいつもすき家
楽しみにしてたのに・・今日に限って朝定食にしたんだ

見てくれ、これが証拠
店員さんも驚いて声をあげてる・・
https://www.youtube.com/watch?v=wjD4hUeU-CA

ちなみに半分食べた
お客様センターが通じない・・病院行く・・
(´・ω・`)すき家が大好きだったのに・・
97デフォルトの名無しさん
垢版 |
2017/08/31(木) 16:38:19.03ID:h+V1mYta
progateでruby勉強してるんだけど到達点どれくらい?
2017/08/31(木) 17:57:09.21ID:c0+jc73k
>>96
アニサキスって赤かったっけ?
2017/08/31(木) 20:41:59.19ID:WEncTfyZ
赤くないし火が通ってるなら食っても問題ない
2017/08/31(木) 23:55:12.77ID:AVEhrEiF
Win32APIライブラリでCreateWindowExいじってたら、割りと簡単にウィンドウ表示までは出来た
この先、作成したウィンドウのイベントメッセージ読むのとかプロシージャーの登録とかって可能なの?
Rubyのオブジェクトをwindowsのシステム側で扱う事に全然イメージがわかない
2017/09/01(金) 03:18:52.55ID:9fFcfHIv
今どきWIN32APIを直に操作して
GUIアプリ作るのは推奨しない
102デフォルトの名無しさん
垢版 |
2017/09/01(金) 06:07:20.32ID:i93+5y4B
>>101
へ?秀丸とか、Win32API直に使ってるが。
2017/09/01(金) 06:58:32.78ID:9fFcfHIv
>>102
そりゃ秀丸は20年以上も昔にできたソフトだからだろ
2017/09/01(金) 08:05:54.17ID:5FevI1x1
>>101
石北会計だな。w
今日日、Win32を使う奴はわかってる奴なんだから、いちいち言うなよ。
2017/09/01(金) 08:10:50.04ID:5FevI1x1
>>100
Win32APIモジュールはobsoleteじゃなかったっけ?
106デフォルトの名無しさん
垢版 |
2017/09/01(金) 09:21:39.76ID:Ob/n1Hvz
>>105
require 'Win32API'
method = Win32API.new('UNZIP32.DLL', 'UnZipGetVersion', %w(v), 'l')
method.call()

こういうのは今は書けないのだっけか?
2017/09/01(金) 10:39:18.56ID:q9GEiqjl
>>74
インド人エンジニアが松江に就職08/31 21:27nhk
松江市など5市でつくる経済圏域と経済連携協定を結んでいるインド南部のケララ州
から、初めて、エンジニアが松江にあるIT企業に就職することになり、松浦市長を
表敬訪問しました。
松江市でエンジニアとして働くことになったのは、インド・ケララ州出身の
ポール・ジョー・ジョージさんです。
市役所を表敬訪問し、松浦市長と対談しました。
ポールさんはことし1月、松江市にあるIT企業のインターンシップに参加したこと
をきっかけに松江で働くことに興味を持ち、受け入れ先の企業に入社することになりました。
ポールさんは、ケララ州から就職する初めてのエンジニアで、松浦市長から松江市の
印象について聞かれると「景色が美しく、人も親切な人が多いです。
働くことができてとてもうれしいです」と話していました。
また、松浦市長が「ケララ州と松江市を結ぶ人材となり、市の魅力を伝えてほしい」
と話すと、ポールさんも「ケララ州には日本に興味を持っている人が多いと思うので
ぜひ松江の魅力を友達に伝えていきたいです」と応じていました。
ポールさんは今後、松江市の技術者が開発したプログラミング言語「Ruby」
を用いて、スマートフォンアプリなどの開発に取り組むということです。
2017/09/01(金) 11:10:27.06ID:5FevI1x1
>>106
現時点での書ける書けないとobsoleteはあんまり関係ないけどな。w
-wオプションをつけると、警告が出ないか?
2017/09/01(金) 13:39:28.29ID:9yK75Fqt
コールバックやら面倒な構造体を用意する必要があるAPIは、dlやfiddleで
110デフォルトの名無しさん
垢版 |
2017/09/02(土) 17:36:15.59ID:FxmYDPin
>>100
pythonの方が楽
2017/09/02(土) 18:03:38.70ID:8sP5WLe+
>>109
dlは、表現できないAPIがあったと思う。
構造体の値渡しだったかな。
2017/09/02(土) 18:16:00.07ID:XK514dy6
>>110
C/C++の方が楽
113デフォルトの名無しさん
垢版 |
2017/09/02(土) 19:51:26.40ID:jwTYoGam
>>112
wscriptの方が楽
2017/09/02(土) 21:44:45.82ID:bg+UFj/h
クロスプラットフォームGUIアプリであるAtomもVisualStudioCodeもお前らの嫌いなJavascript で動いているという事実。
それに引き換えRubyは初期からWindows環境冷遇し、英語ドキュメント揃えずソース読めで外人初心者冷遇し、今になってどっちも真面目に取り組んでたPythonに水を開けられた格好だね。
2017/09/02(土) 21:59:05.23ID:jEve2DY4
英語は冷遇してないぞ
今やRubyKaigiですら英語がデフォルトランゲージだ
2017/09/02(土) 22:07:36.87ID:3OWZxoem
ぐぐって調べたんだけど、
DLライブラリってruy1.8までのDL1みたいなものと、ruby1.9からのDL2みたいなものがあるのか
それはさて置き、
言われてたDLライブラリでは、ちゃんとウィンドウプロシージャでメッセージを読む所までいけた
webページ参考にしながらだったけどありがとう
2017/09/02(土) 22:40:25.94ID:ffADZB+6
Rubyに日本人が多いから
英語ドキュメントの不足は仕様がないにしても
Windowsはもっと対応すべきだったね
2017/09/02(土) 22:41:38.02ID:ffADZB+6
Rubyの言語仕様は使いやすいけど
Windowsの環境構築が大変だし
Win用のGUIライブラリがパッとしない
2017/09/02(土) 23:23:24.21ID:3OWZxoem
DLライブラリの構造体の値渡しについて詳しく
120デフォルトの名無しさん
垢版 |
2017/09/03(日) 17:47:18.77ID:skndupQG
wxRuby
2017/09/03(日) 23:11:40.50ID:q5J4dG7T
あかん
DLの挙動を確認したいけど、構造体を値渡しする関数が思いつかん
手近なところで試すのにめんどくさくない関数ってなにかない?
2017/09/03(日) 23:23:28.80ID:RvVPFZuP
>>119
とにかく、構造体を値渡しするAPIをDLモジュールで呼び出せるかどうか、試してみろよ。
2017/09/03(日) 23:26:38.55ID:RvVPFZuP
おっといきちがい。

スクリーン座標かマウスポインタかをどうこうするAPIにそういうのがあったと思う。
オレはそれで乗り換えた記憶がある。
2017/09/05(火) 22:33:24.08ID:MbNhWD1A
MFC、ATLと続き、Cランタイムまでロードして色々試してまわったけど
構造体を値渡しする関数は自分で作らないとないっぽい
どれもこれもポインターをわたしとった
スマートポインターやインターフェイス、クラスやインスタンス、メンバーやメソッドの扱いなんかも、
DLではちょっと無理そう
こういうのは横着せずラッパー書いてやるしかないと思う
2017/09/05(火) 22:58:31.06ID:fnT2eJZH
あほくさ。C#使やいいのに。100倍楽だわ
126デフォルトの名無しさん
垢版 |
2017/09/06(水) 00:41:36.28ID:eoNcIyiq
な〜にキレてんだよ
不都合なレスでもでもあったのか?
2017/09/06(水) 01:26:41.12ID:iI8edc8I
>構造体を値渡しする
構造体みたいなサイズが大きいものは、普通、値渡し(コピー)しない

ポインタで渡すとコピーされないから、普通は、ポインタ(参照)渡し
128デフォルトの名無しさん
垢版 |
2017/09/06(水) 02:14:32.33ID:eoNcIyiq
age
2017/09/06(水) 10:37:36.24ID:J8xaYq/0
>>124
探したったぞ。
WindowFromPoint()

凝ったことをやりたいならffiモジュールを調べてみろ。
すくなくともコールバック関数は使える。
2017/09/06(水) 10:38:56.74ID:ygscOEFy
言っちゃなんだけどバグの元だな
2017/09/06(水) 10:40:20.14ID:J8xaYq/0
>>127
構造体が充分小さい場合は値渡しでいい場合もある。
C#でも、そのためにstructがある。
2017/09/06(水) 17:23:37.45ID:0rliz1cq
dlでcallack使えるとかはもう出ていて、
今問題になってるのはdlでも構造体の値渡しができるかどうか

>>129
結果、下記ので呼べたけどこれじゃダメなの?

module MODU

関数ロード部分
extern "int WindowFromPoint(int,int)"

end

p MODU.windowFromPoint(x,y)
2017/09/06(水) 18:39:39.83ID:xWkzKu3e
みんなffi使ってるからもうその話いいよ
134デフォルトの名無しさん
垢版 |
2017/09/06(水) 19:08:12.67ID:2frueYn2
ん?
荒らしが嫌がるという事は有益なレスなのか

いいぞ、もっとやれ
2017/09/06(水) 19:36:05.78ID:vILuBDeW
>>132
たしかに素直な構造体ならいけそうだ。

場合によってはアラインメントとかパディングとかでひっかかりそうだが、回避しきる自信があるのなら、もうそれでもいんじゃね?
オレならさっさと逃げるけどな。
136デフォルトの名無しさん
垢版 |
2017/09/06(水) 20:19:48.12ID:2frueYn2
単にリファレンスを読んでないだけじゃないのかそれ?
2017/09/06(水) 23:23:31.25ID:ygscOEFy
↑ユーザー層が良く表れててサイコー
2017/09/07(木) 03:19:34.26ID:ItXgki7C
133 名前:デフォルトの名無しさん 2017/09/06(水) 18:39:39.83 ID:xWkzKu3e
みんなffi使ってるからもうその話いいよ
134 名前:デフォルトの名無しさん 2017/09/06(水) 19:08:12.67 ID:2frueYn2
ん?
荒らしが嫌がるという事は有益なレスなのか

いいぞ、もっとやれ
135 名前:デフォルトの名無しさん 2017/09/06(水) 19:36:05.78 ID:vILuBDeW
>>132
たしかに素直な構造体ならいけそうだ。

場合によってはアラインメントとかパディングとかでひっかかりそうだが、回避しきる自信があるのなら、もうそれでもいんじゃね?
オレならさっさと逃げるけどな。
136 名前:デフォルトの名無しさん 2017/09/06(水) 20:19:48.12 ID:2frueYn2
単にリファレンスを読んでないだけじゃないのかそれ?
137 名前:デフォルトの名無しさん 2017/09/06(水) 23:23:31.25 ID:ygscOEFy
↑ユーザー層が良く表れててサイコー
139デフォルトの名無しさん
垢版 |
2017/09/07(木) 23:57:00.12ID:04reamdt
別々のgemなのにrequireする時の名前がかぶってしまって、しかも両方を呼び出す必要がある場合、
どうやってrequireするのが正しいの?

例で、OpenGLのgemがいくつかあるけど、そのうちの二つが"opengl"でrequireする事になっている
2017/09/08(金) 01:34:25.09ID:3vC4jpKo
問題ないです
名前が衝突することは良くありますが
Rubyはダックタイピングを基調としているので
名前(メソッド名)が同じなら同じような振る舞いをします
たとえ出所が違っていても名前が同じなら同じような振る舞いをします
これがダックタイピングであり
そのようなことはRubyが言語側で保証しているので
プログラマが心配することは有りません
2017/09/08(金) 01:39:16.03ID:NantPsUO
質問:どうやって〜するのか?
回答:問題ない

2017/09/08(金) 03:04:34.55ID:K2jDcQfO
・・・/上のディレクトリ/opengl
となっているのを
・・・/上のディレクトリ/exampl1/opengl
・・・/上のディレクトリ/exampl2/opengl
のように手作業で新しいディレクトリつくってそこに移動させる

で、
require "exampl1/opengl"
require "exampl2/opengl"
みたいな感じで呼び出す、とか
2017/09/08(金) 03:19:41.86ID:mcCYyLIS
ん、同じrbファイル内でrequireするの?
モジュール名も同じなら1つのモジュールの中に両方入ることになる気がするけど
2017/09/08(金) 05:59:14.78ID:/QLRsA7o
通常、Load-Pathで最初に見つかったファイルひとつをrequireする
requireはファイルパスつきで指定もできるので、区別できる程度のパスつきで指定すると実質複数読み込める
んでRubyはオープンクラスなのでAA#bbの定義が2回目のrequireで発見されたら2回目ので上書きされる

で、gemに限っては gem 'gemリポジトリ名' で指定して読み込むことができる(これは登録上被らないので)
一般的にはLoad-Path依存という回答
2017/09/08(金) 15:38:22.30ID:K2jDcQfO
モジュール内だけとかにファイルを読み込めれば名前空間的な扱いができそう

requireやloadじゃなく、第三の読み込み方法が必要になるけど
2017/09/08(金) 18:13:46.58ID:mcCYyLIS
異なるgemだけどトップレベルのモジュール名が同じものを
一つのrbファイルの中で扱う場合の対処方法として一般的に認知されてるものは無いっぽいね
(別のrbファイル内ならgemコマンドとrequireかな)

loadの第二引数でtrueを渡してAnonymousにしたモジュールに別名を付けるような仕組みがあればいいみたいだけど
loadはAnonymousモジュールを返してくれないから少しtrickyなことをしないと無理

ダサいけどdupして別名で使うのが簡単な気がする
あとはforkしてrenameとかかな

#load_foo.rb
require ‘foo'
Bar = Foo.dup
Object.send(:remove_const, :Foo)

#main.rb
require ‘load_foo’
Bar.something
2017/09/08(金) 20:25:09.24ID:dCkrwQvc
でも、違うクラスのほうを見にいって、うまく動作しないはめになりそうだけどな。
2017/09/08(金) 21:38:34.51ID:K2jDcQfO
適当なモジュールを定義して、
そのモジュールに対してmodule_evalでファイルを評価させるとかどう?

ファイル側はトップレベルでのloadを想定してるだろうから、何らかから派生させたモジュールを用意する必要があると思うけど
kernelだったかmainだったか

で、同名のファイルも別のモジュールでeval
149デフォルトの名無しさん
垢版 |
2017/09/09(土) 08:22:23.23ID:A2Lkc5St
ヤフー株式会社が中途採用していたので応募した。
会社半休とって、深夜01時までかけて、写真付き履歴書、職務経歴書(必須提出書類)つくった。

火曜に提出、金曜に不採用通知が来た。

ショック!でもまあ、さすが爆速開発の会社。
まあ、しょうがない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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