トップページ⇒tech
1002コメント364KB

Ruby 初心者スレッド Part 58 [無断転載禁止]©5ch.io

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

前スレ
Ruby 初心者スレッド Part 57
http://peace.2ch.net/test/read.cgi/tech/1426165733/

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

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

逆引きRuby
http://www.namaraii.com/rubytips/
0023デフォルトの名無しさん2016/04/02(土) 21:10:59.86ID:0eiGAsV4
というかRuby 1.8 ってまだサポートしてんだっけ?
0024デフォルトの名無しさん2016/04/03(日) 02:37:49.45ID:RpcNuWJW
>>22
ありがとうございます
プログラム側の問題というよりはホームページ側の問題みたいですね
0025デフォルトの名無しさん2016/04/03(日) 09:43:35.27ID:T0KKITG1
>>24
ちがう
あなたにHTTPとHTML(やJavaScript(や一般的なサイト運用技術知識))の知識がないがために普通のブラウザの挙動をエミュレートできてない
必要なのはRubyの知識じゃなくってWebブラウザの挙動とHTTP通信とHTMLでのサイトの書かれ方の知識
0026デフォルトの名無しさん2016/04/03(日) 15:55:17.04ID:RpcNuWJW
>>25
すみません、指摘していただいたことがうまく理解できないのですが
サーバにリクエストを送って帰ってきたHTMLファイルをブラウザが解析して
表示がされるという程度の認識でした。

自分の想定していた挙動は
>>21の
>[root@localhost www]# wsdl2ruby --wsdl 'http://h-invitational.jp/hinv/hws/varysysdb/soap_search_rs_number.php?wsdl' --type client
を実行して作られたクライアントクラスの中を修正して
>[root@localhost www]# ruby search_rs_number_execServiceClient.rb
を実行すればXML形式で期待する結果が返ってくると思っていました。
0027デフォルトの名無しさん2016/04/03(日) 16:58:38.52ID:OaDtSrzO
from search_rs_number_execServiceClient.rb:27

その前後の変数の内容を、片っ端から見てみれば?
0028デフォルトの名無しさん2016/04/04(月) 07:02:52.26ID:UUnGIXWs
>1a77a8341bddc4b45418f9c30e7102b4
こういう0..fで構成されたハッシュ値を
>tp://i.imgur.com/nOBxnDb.jpg
>nOBxnDb
みたいな短縮URL風に短くするコード教えて下さい
0029デフォルトの名無しさん2016/04/04(月) 09:10:25.66ID:jvwKdFAZ
>>28
どこからわからんのかくらいは言って欲しい
16進数を(10進数に置き換えてから)26進数なり52進数なりに計算し直して文字を当てはめる
0030デフォルトの名無しさん2016/04/05(火) 13:10:42.86ID:wRkvpogr
gets(
0031デフォルトの名無しさん2016/04/05(火) 13:12:49.42ID:wRkvpogr
標準入力から一度に改行を含めて文字列を得るにはどうやりますか?
0032デフォルトの名無しさん2016/04/05(火) 13:52:47.37ID:Uvoa8jl9
Rubyで真にprivateなインスタンス変数を作るにはどうしたらいいんでしょうか?
別に切羽詰まった話ではありません、ふと浮かんだ疑問です。

class SecretHeart
def initialize(feeling="")
@feeling = feeling
end
private
def feeling=(any) end
private
def feeling() nill end
end
john = SecretHeart.new("悲しい")
print john.feeling # → error
print john.instance_eval{@feeling} # → "悲しい"
print john.instance_eval{@feeling = "楽しいです!"}
print john.instance_eval{@feeling} # → "楽しいです!"

BasicObject#instance_eval を使えばなんでもアリじゃないですか?
private
def instance_eval() end
こんなoverrideをしても、きっとまだ裏道ありますよね。
0033デフォルトの名無しさん2016/04/05(火) 14:12:22.26ID:F6iG++QK
# 標準入力から、一気に終わりまで読む
ary = $stdin.readlines

# 1行ずつ処理する
ary.each_line do |line|
line.chomp!
end
0034デフォルトの名無しさん2016/04/05(火) 14:16:14.23ID:Wtb6QTFr
>>32
>Rubyで真にprivateなインスタンス変数を作るにはどうしたらいいんでしょうか?
Rubyでは絶対的なアクセス制御はできない
なぜなら「普通に」アクセスした時に拒まれさえすれば用は済むからだ
0035デフォルトの名無しさん2016/04/05(火) 14:20:10.18ID:Uvoa8jl9
>>34
了解。 そういう文化なんですね。
0036デフォルトの名無しさん2016/04/06(水) 00:23:46.52ID:q1HrDxSz
Win7でRubyを勉強しようと思うんですが、Cygwinでやるのがお手軽ですか?
0037デフォルトの名無しさん2016/04/06(水) 01:43:49.90ID:SreJMpRz
ImageMagickやらのLinux由来の拡張ライブラリを使うのでなければ、Ruby Installerでいいんじゃない。

Win10にしてUbuntu on Windows上でRuby動かすってのはいつからできるんだっけか。
0038デフォルトの名無しさん2016/04/06(水) 02:33:03.12ID:kRFLofHq
>>36
わざわざcygwin導入しなくてもコマンドプロンプトで十分
導入してるのならお好きに
0039デフォルトの名無しさん2016/04/06(水) 07:38:43.97ID:BFsTf7eA
paiza.IO, CodePad など、ブラウザを使って、オンラインでもプログラミングできる

環境構築もいらん
0040デフォルトの名無しさん2016/04/06(水) 11:05:30.04ID:vURaTx4x
>>39
そしてIDやパスワードを自分からお漏らしするまでがセットか
ttp://codepad.org/recent

初心者向け「だからこそ」ローカルで完結するべき
0041デフォルトの名無しさん2016/04/08(金) 21:35:25.29ID:/jXs509G
class Tesuto < ActiveRecord::Base
validates :password, format: { with: /\A([^@\s]+)\Z/ }

devise :database_authenticatable, :registerable,
:validatable
end
スキャッフォルドで何かアプリケーションを作りたいと思い、scaffoldを使ってdeviseをインストールしました。
そこで編集ページできちんとパスワードが打てるようにvalidateも設定して空白禁止処理を施そうとしましたが、ユーザー登録やユーザーログインで空白をデフォルトで禁止されていて、
編集ページではデフォルトで禁止されておらず、空白が許可されています。

validateでpassword指定して空白禁止すると編集ページで変更するためのパスワードが省略できず、確認用パスワード、現在のパスワードの3回連続で打たなければなりません。
validate、またはほかの場所にどのような処理を施せばよろしいでしょうか?
0042デフォルトの名無しさん2016/04/08(金) 23:24:07.46ID:R25zKOdT
WEBプログラミング板に、RoRのスレがあるので、そっちで聞いたら?
0043デフォルトの名無しさん2016/04/09(土) 00:40:43.27ID:d9XDMAzz
>>41
before_action とかで空白禁止のバリデーションを edit のときのみ適用すればよいのでは?
0044デフォルトの名無しさん2016/04/09(土) 23:00:32.93ID:O9j9lH5Y
>>18
>>19
GUIとEXEもわりと低コストでできるぞ
0045デフォルトの名無しさん2016/04/10(日) 05:59:09.98ID:QHKhqpLv
>>44
よければ詳しく
0046デフォルトの名無しさん2016/04/10(日) 07:24:02.68ID:WTOWAaLY
>>45
たとえばGUIはTk、EXEはOcraでできる
0047デフォルトの名無しさん2016/04/11(月) 00:47:25.00ID:zoLHrFMR
railsのインストールできないんだけどどうしたらいい?
http://i.imgur.com/LrHWsVu.png
0048デフォルトの名無しさん2016/04/11(月) 01:03:31.98ID:WJsT15xh
linuxに乗り換える
0049デフォルトの名無しさん2016/04/11(月) 01:10:55.06ID:uBEcAuw5
rubyのバージョン2.3に対応してないみたいだね
0050デフォルトの名無しさん2016/04/11(月) 02:21:36.55ID:JpybrsSq
RWBY は第4クルー始まるというのにね
0051デフォルトの名無しさん2016/04/11(月) 06:36:47.71ID:zoLHrFMR
>>47
http://www.rubylife.jp/railsinstall/rails/index1.htmlの手順に従ってやって
その次にhttp://rubyonrails.org/行ってみたけどrailsダウンロードできない
0052デフォルトの名無しさん2016/04/13(水) 16:29:53.43ID:372sz71r
10ビット3つを、(10, 10, 10)とbitsetのように使っているとき、
真ん中の10ビットを、上書きするにはどうすればよい?

上書きする演算子が見つからない
0053デフォルトの名無しさん2016/04/13(水) 17:42:17.15ID:oU5fSDxg
何をしているのかよくわからんが

bitset = bitset & 0b111111111100000000001111111111 | 0000000000(上書きしたい10ビット)0000000000

ではいかんのか
0054522016/04/13(水) 18:12:34.54ID:372sz71r
ありがとう

元のビットの上書きしたい部分を、0&でマスクしてから、
ORで上書きすれば良かったのか
0055デフォルトの名無しさん2016/04/15(金) 21:02:46.68ID:qyn/7G/H
pryでShiftキーを押すと結構な確率で動きが一時的に固まるんだけどどうしたら良いのかな

例えば
puts "Hello, World!"
って左から順に打った場合、"、H、W、!、"のどれかを押した瞬間に固まってそのまま数十秒動かなくなる
その間はCtrl+cとかも無反応

Pry version 0.10.1 on Ruby 2.2.3
Windows 8.1
0056デフォルトの名無しさん2016/04/15(金) 21:43:29.46ID:kJz9a6FQ
ActiveRecordの関連付けってなにが嬉しいんですか?
0057デフォルトの名無しさん2016/04/15(金) 22:08:30.22ID:dCoxeauz
>>56
複雑あるいは面倒な処理を簡単かつ直感的なメソッドチェインで扱えるところが嬉しい
0058デフォルトの名無しさん2016/04/15(金) 23:38:46.31ID:pdQdC9Xb
>>52
xor だったら入力のマスクも簡単にできる
bitData ^= ((1 << bitOffset + bitLen) - (1 << bitOffset)) & (bitData ^ (setVal << bitOffset))
0059デフォルトの名無しさん2016/04/17(日) 00:33:18.57ID:v9XO8+KJ
Ruby始めようと思ってこのスレ来たが、中括弧じゃなくてendなのか
0060デフォルトの名無しさん2016/04/17(日) 00:55:07.10ID:7GcoLz9W
RubyはC++でもJavaでもCでもVBでもないので
予断持たずにきちんと体系的に学習することをお勧めします
なお「RubyはC++でもJavaでもCでもVBでもない」というのは煽りじゃなく本気のアドバイスです
0061デフォルトの名無しさん2016/04/17(日) 01:07:34.17ID:BiZQs4Wa
何から何まで独特だよね
ここまで流行ったのが不思議なほど
0062デフォルトの名無しさん2016/04/17(日) 22:49:27.40ID:DiLcHZEv
Python, Rubyはすごい便利だから、Googleも、実装すべき

>>59
ブロックでは、do 〜 end は複数行で、{ } は1行のみの処理で、使うことが多い
0063デフォルトの名無しさん2016/04/18(月) 00:49:33.87ID:zxdOCIHu
独特というかむしろ
いろんな言語を折衷してるから
書きやすいと思う

書きやすいから流行った
0064デフォルトの名無しさん2016/04/18(月) 23:52:27.01ID:IbVy+CTe
win32oleのieでgoogle検索するやり方はわかったんだけど、
一番最初の検索結果のページに飛ぶやり方がわからない。
検索後ie.document.links.item(0).clickとかやってみたけど全然ダメだった。
ソースを見てみても複雑なjavascriptでよくわからん。
0065デフォルトの名無しさん2016/04/19(火) 06:12:04.67ID:Zv7m44nm
説明しよう! いま現在のクローラー製作に必要なものは
・相手のサーバに目的のHTMLをきちんと表示させられる程度のHTTPの知識
・目的のリンクなり画像なりテキストなりの位置を判断できる程度のHTMLの知識
・目的のリンクなり画像なりテキストなりの位置を表現できる程度のXpathの知識
・通常のWebブラウザではどういう動作をしているのかを分析できる程度のJavaScriptの知識
・通常のWebブラウザでのクリックでどういうことが起こっているかを説明できる程度のWebブラウザ挙動の知識
の5つだ! Rubyスクリプトを作るはずなのにRubyと利用ライブラリの知識という項目が軽視されてることに注目だ!
どういう対象をどういう操作して通常のWebブラウザでいうところのどういう動作にあたるのかを理解せず盲目的に
> 検索後ie.document.links.item(0).clickとかやってみたけど全然ダメだった
とかやってるようでは道程は遠いぞ!
っていうかWebクローラーは初心者的な用途イメージの割にはWeb利用の統合的な技術知識が要求される上に
Googleは超絶効率化のために超絶高度な遣り取りやってるから練習やサンプルには全く適してないんだ! ご愁傷様だったな! Yahoo使えYahoo!
0066デフォルトの名無しさん2016/04/19(火) 06:20:43.61ID:fF4GXe73
Rubyでクローラー作る本があるから読めば?
0067デフォルトの名無しさん2016/04/19(火) 15:19:46.53ID:DoDYnfhi
ie.open(ie.document.links.item(0).value)
0068デフォルトの名無しさん2016/04/19(火) 19:12:04.08ID:kcmoRlAu
>>67
`method_missing': unknown property or method: `value' (NoMethodError)
0069デフォルトの名無しさん2016/04/19(火) 21:14:24.24ID:+csqt/Wa
>>68
ドキュメント読もう
0070デフォルトの名無しさん2016/04/19(火) 21:50:54.87ID:kcmoRlAu
どこにドキュメントあるのかわからん。
ググれば見つかるもんなの?
0071デフォルトの名無しさん2016/04/19(火) 22:44:13.44ID:+csqt/Wa
win32oleってやつ?だよな?
浸かったことないが検索したら出たぞ
2.1.0だけど http://docs.ruby-lang.org/ja/2.1.0/library/win32ole.html
0072デフォルトの名無しさん2016/04/20(水) 06:55:31.98ID:w5hbs5qX
下を読めばわかるけど、クローラーって実は、驚異的に難しいw
エラーになる可能性が無数にあるので、言語どうこうの話じゃない

Rubyで、anemoneの物足りない部分を補完するクローラーを自作した
ttp://qiita.com/tkosuga@github/items/7c1b7bf98a697de66b68

るびきちが、Rubyによるクローラーの本を出している

>>64
そもそも他人の作ったプログラムは、簡単に解析できない。
APIの使い方を、公開していなければ、まず使うのは無理

企業はアプリを解析するのに、普通、1人月百万円以上払う。
それくらい難しいってこと
0073デフォルトの名無しさん2016/04/20(水) 07:40:43.74ID:IJSlkgxq
難しいというよりとにかく泥臭い
Rubyistの仕事としては最底辺の部類
0074デフォルトの名無しさん2016/04/20(水) 11:21:11.72ID:TvagBB0u
クロールされたサイトになんのメリットもないクローラー開発なんか
やっちゃだめだぞ。俺はやらされてたが。
0075デフォルトの名無しさん2016/04/20(水) 22:04:01.92ID:+P5uzrzE
結局HTML読めないとクローラーって作れないのね。
まあ、ぼちぼち頑張るか。
0076デフォルトの名無しさん2016/04/21(木) 09:09:15.15ID:636JdrjZ
Linux やmacでzip作成したいのですが、Windowsファイル名のダメ文字を
置換するリネームプログラムってないですか?

Windowsで使えない文字は「< > : * ? " / \ |」。
Linuxで使えない文字は、「/」(他はNull)で
Macで使えない文字は、「 : /」。

ファイルやフォルダはfindで検索するとして、指定ディレクトリの
ファイルやフォルダを「< > * ? " \ |」半角文字を検索し
全て全角に置換したいです。ruby1.8.7希望。
0077デフォルトの名無しさん2016/04/21(木) 13:53:08.49ID:IzmoSDze
ruby unixコマンド 実行
とかで検索したら出てくるけどいくつかあるよ
find の結果の文字列を gsub で置換してやればいいんじゃね?
0078デフォルトの名無しさん2016/04/21(木) 16:32:18.89ID:636JdrjZ
>>77
どうもです。ファイル名に複数のダメ文字がある可能性があるので一つの記号にgsubするしかないですね。
0079デフォルトの名無しさん2016/04/21(木) 19:52:32.92ID:iEWNQ8UB
gsubはHashわたせば複数痴漢できるよ
ってそういう話じゃないか?
0080デフォルトの名無しさん2016/04/21(木) 20:36:07.43ID:636JdrjZ
>>79
【Ruby】gsubで複数文字を置換したかった話 | カイトズズキ
http://www.kaitosuzuki.com/posts/406909

str = 'abcdef'
hash = {'a'=>'A', 'b'=>'B', 'c'=>'C'}
puts str.gsub(/a|b|c/, hash)

こんな感じかな。雰囲気はつかめたのでよかった。(^_^;) 楽できそうです。
0081デフォルトの名無しさん2016/04/21(木) 20:57:51.29ID:/vBm71ZP
場合によっちゃあtrでもいいかもね
p '12345'.tr('15', 'lS')
↓
"l234S"
0082デフォルトの名無しさん2016/04/22(金) 20:35:54.49ID:2DzgCe5n
gsub重ね掛けするのってそんな面倒か?
ループで回すだけだと思うんだが。
0083デフォルトの名無しさん2016/04/22(金) 21:25:13.47ID:lAvb/AZz
gsubでhash渡すやつ、なんか使いづらいな
正規表現をキー、一致した文字列を置換する文字列をバリューにとかなら便利なのに
0084デフォルトの名無しさん2016/04/22(金) 23:51:19.95ID:++t+RWP3
>>81
require "jcode"
で全角の tr ができるようになる
0085デフォルトの名無しさん2016/04/23(土) 10:34:50.94ID:5AJaEQrL
>>83
正規表現だと置換前の文字列が重複しかねなくない?
0086デフォルトの名無しさん2016/04/24(日) 14:22:44.47ID:Uo+BTEtc
Rubyってダイレクトドライブアクセスできんの?

存在するドライブやディスクに対して
f = File::open(
0087デフォルトの名無しさん2016/04/24(日) 14:29:36.53ID:aqqgpD8T
できる
0088デフォルトの名無しさん2016/04/24(日) 18:01:19.78ID:+9N3vohH
なんとなくJSONを文字列化してCipher使って暗号化→復号化ってやってて、
復号化した後に文字列になったJSONをJSONに戻す良い方法が分からなくて困ってるんだけど、なんか良い方法ない?
0089デフォルトの名無しさん2016/04/24(日) 18:41:24.15ID:+9N3vohH
申し訳ない、自己解決しました・・・
お目汚し失礼しました
0090デフォルトの名無しさん2016/04/25(月) 23:22:01.75ID:VbK9UkJ/
#10から0を改行区切りで出力してください

for i in 10..0
print i
end

ではまちがっているんですか??
0091デフォルトの名無しさん2016/04/26(火) 00:09:41.02ID:c1+pgvSl
私ならこうかくが

10.downto(0){|i| puts i}
0092デフォルトの名無しさん2016/04/26(火) 01:15:49.37ID:du3QkmSG
downto使わないでfor to_a reverse とかいうのを
使うらしいんですけど
0093デフォルトの名無しさん2016/04/26(火) 01:34:24.43ID:XcjXnWra
>>90
そんな書き方したことないから自信ないけど、範囲式は逆順指定できないんじゃないかな?
もしかしたら俺が勘違いしてるだけでできるかもしれないけど、普通しない

並びにfor文はあまり使われない
一応あるけど91のようにイテレータを使うのが一般的
詳しくはイテレータで調べてくれ
0094デフォルトの名無しさん2016/04/26(火) 01:39:20.39ID:XcjXnWra
>>92
更新してなかった

10.downto 0 → 10から1ずつ減らしてループする
0..10.to_a.reverse → 0から10の範囲オブジェクトを作って配列に変換
それからその配列を逆順に並び替えて、要素それぞれを対象にループ

後者は無駄に長いし、処理時間も増えるし、メモリも食うし、
特別な理由がなきゃわざわざそんなことする意味ない
0095デフォルトの名無しさん2016/04/26(火) 17:28:12.49ID:6COxB88I
初心者の人は、わかりにくい for in 構文を一体どこから拾ってきてるんだろ?
一般的なコードに for in なんてないのに。不思議だ。
0096デフォルトの名無しさん2016/04/26(火) 17:42:42.60ID:du3QkmSG
改行区切りで出力するばあいは
print iの後になんというコマンドを追加すればいいのですか?
>>90を訂正したヤツだと改行しない結果になるらしいんですけど
0097デフォルトの名無しさん2016/04/26(火) 17:52:41.48ID:hodGhGMX
puts i
print i.to_s + "\n"
print "%d\n" + i
0098デフォルトの名無しさん2016/04/26(火) 17:53:50.31ID:hodGhGMX
print "%d\n" % i
修正ミス
0099デフォルトの名無しさん2016/04/26(火) 18:35:38.41ID:du3QkmSG
#1から9の奇数を出力してください

for i in 1..9 #ここに範囲
puts i
end

でどう偶数抜いて表示すればいいんですか?
0100片山博文MZ ◆T6xkBnTXz7B0 2016/04/26(火) 18:38:58.99ID:P4FlrKEb
2で割ったときの余りを使う。
for i in 1..9
puts i if i % 2 == 1
end
0101デフォルトの名無しさん2016/04/26(火) 18:44:56.52ID:c1+pgvSl
宿題は自分でやりましょう
0102デフォルトの名無しさん2016/04/26(火) 19:55:33.70ID:x2RHMR6g
>>95
awk
0103uy2016/04/26(火) 20:29:48.28ID:4KSOxSiL
http://suumo.jp/ms/shinchiku/tokyo/sc_koto/nc_67712348/

こういうとこ住みたいんですけど
1日どのくらいRubyのソースコード書いてれば住めますか?


>>99
ha?
p (1..9).reject(&:even?)
0104デフォルトの名無しさん2016/04/26(火) 23:11:59.29ID:HvJUwHuI
>99
1.step(9,2){|x| puts x}
0105デフォルトの名無しさん2016/04/27(水) 05:43:58.05ID:dtd6C8pN
コードガールのruby STAGE17まで解いてしまったッ
0106デフォルトの名無しさん2016/04/27(水) 16:37:59.42ID:wyNXRpNW
こんなのあるのかw
序盤の標準出力ラッシュで飽きてやめたけど
0107デフォルトの名無しさん2016/04/28(木) 01:06:23.99ID:QkuSJykk
プログラミングってよりただのタイピング・ソフトじゃねえか
問題はくそなのに、初見だとたまに☆2つとかになってついイライラしてしまう
0108デフォルトの名無しさん2016/04/28(木) 02:05:42.82ID:cNgqnPtu
プログラマ脳を鍛える数学パズル
シンプルで高速なコードが書けるようになる70問、増井 敏克、2015

CodeIQに掲載された問題を、Rubyで解説

「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞(ITエンジニア本大賞)」の受賞作
0109デフォルトの名無しさん2016/04/28(木) 11:42:25.74ID:B+IQUyxU
プログラミングや3Dモデリングデータ作成なしで3DマップのRPGを作れる
「Smile Game Builder」を発表。GDC 2016へ出展
http://www.4gamer.net/games/337/G033741/20160317004/
0110デフォルトの名無しさん2016/04/28(木) 13:22:26.24ID:1hszbTkN
スレチ
0111デフォルトの名無しさん2016/05/01(日) 08:49:23.40ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
e
0112デフォルトの名無しさん2016/05/01(日) 23:26:41.59ID:GuNd9hsH
rubyのスコープ気持ち悪いと思うんだけどなんかいい感じの解説ない?
例えばこれとか
def test
if true
result = 1
end
result
end
#=> 1
なんかめっちゃ違和感ある
0113デフォルトの名無しさん2016/05/02(月) 00:24:57.68ID:703evd9b
その例からだと何が気持ち悪いのかわからない
0114デフォルトの名無しさん2016/05/02(月) 00:29:59.79ID:o2fcY4RJ
ifの中で定義された変数がifの外で未定義にならないところです
0115デフォルトの名無しさん2016/05/02(月) 05:30:37.04ID:zpJUdxcq
defはメソッドだからRuby1.9ではという話をするのかと思ったら斜め上だった
そういや初心者スレだったなココ
というかifの前で変数定義しないと変数持ち出せない言語なんてそうそうないと思うのだが

>>114
最後がendかどうかで構造を判断するのやめれ
君は「endで括られている範囲なのに」と考えているはずだ
endは終了を示すただの記号でしかない
最後の文字ではなく def とか if とか do とか先っぽ見てスコープというか制御構造かどうかを判断しろ
0116デフォルトの名無しさん2016/05/02(月) 07:19:53.61ID:fVfRKiIw
>>115
前段どういう話か教えてくんろ
そのあたり疎いんだ
0117デフォルトの名無しさん2016/05/02(月) 07:28:06.01ID:R0ulJHCe
>>112
その挙動で良いと思うが

>>114
そっちの方が違和感ある
0118デフォルトの名無しさん2016/05/02(月) 08:11:00.54ID:HJ2xVTJl
do end や {} ならブロックローカルになるんだけど、ifの中身はブロックではないのでスコープは外と同じ
実際一貫性がなくて紛らわしいところだから、今設計しなおしたら全部ブロックになりそう
0119デフォルトの名無しさん2016/05/02(月) 09:56:51.18ID:o2fcY4RJ
>>115
うーん理由としてはあんま納得できないわ
俺も一貫性に欠けてると思う
ちなみに Ruby ではほぼ使われないけど for や while もスコープ作らないからその判別方法は良くない
0120デフォルトの名無しさん2016/05/02(月) 13:02:10.27ID:s90URipo
むしろブロックスコープがいらない
「ローカルスコープを作るのはdefのみ」でいいよ
外側の名前を上書きするバカはほっとけ
0121デフォルトの名無しさん2016/05/02(月) 13:22:44.05ID:Nwnpiy9m
ブロックスコープが要らないは飛びすぎじゃないか?
そういう意味でもやっぱりforやらwhileにスコープある方がしっくりくるわ
0122デフォルトの名無しさん2016/05/02(月) 15:50:36.97ID:tHMT3Y4S
一貫性がないのは確かだが、無駄に宣言しなくていいようにあえてしてるってメーリスか何かで言ってたはず
0123デフォルトの名無しさん2016/05/02(月) 16:03:03.37ID:75TgGWvQ
>>122
まじか知らなかったわサンクス
■ このスレッドは過去ログ倉庫に格納されています