Ruby 初心者スレッド ..
[2ch|▼Menu]
803:デフォルトの名無しさん
08/09/09 21:13:17
>>790
ローカル変数やインスタンス変数に入る値(=代入されるオブジェクトの内容)を、自動的に制限する方法は
基本的には存在しない。テストで頑張るのが常道

ただし、アクセサメソッドを上書きすることで

obj.parameter = 100

といった代入の形に限り、何らかの制限を行うことはできる

804:デフォルトの名無しさん
08/09/09 21:14:50
>>798 の毒され方が気になる

805:デフォルトの名無しさん
08/09/09 21:19:41
>>804
確かに、かなりの重症患者だろうな…
ラムダ使いも、度がすぎると全く未知の方法を編み出すんだろう…

806:デフォルトの名無しさん
08/09/10 00:41:31
>>790
言語レベルで規制はできない。
やりたかったら、不正な値ならraiseするんかな

807:デフォルトの名無しさん
08/09/10 00:54:41
>>806
そのへんは一応>>798ではある、んだが

Rubyにおける「変数のイレモノ」の実体はそれの指すオブジェクトだからな
他の言語における「変数作成時に何かしたい」は「オブジェクト作成・操作時に何かする」だろう

というか、他の言語での変数ってデータのカタマリを指すラベルのようなものじゃないのか?

808:デフォルトの名無しさん
08/09/10 01:39:07
>>790の言語経験がわかんないよね。
アセンブリとかCOBOLとかperlとかかね。

案外Pythonとかhaskellとかバリバリ使ってるのに
釣りに来ただけだったりw

809:デフォルトの名無しさん
08/09/10 07:08:07
「変数には型がない。オブジェクトには型がある。」
といくら説明しても理解できない人にぶちあたると徒労感でいっぱいになる。



810:デフォルトの名無しさん
08/09/10 07:09:54
関数型言語使ってる人とは、これほどパラダイムが違うなんて思ってもみなかったは…

811:デフォルトの名無しさん
08/09/10 10:03:17
>>809
そりゃその2つの間には関連性は希薄だからな
並べられて説明されるほど混乱するのはあたりまえだと思う

812:デフォルトの名無しさん
08/09/10 11:00:52
オブジェクトについてのことを変数の文脈の「型」を絡めて説明するのは誤解招いてキケンだと思う…

813:デフォルトの名無しさん
08/09/10 12:46:47
メタ議論は他所でやれ

814:730
08/09/10 12:57:05
オブジェクト指向でプログラミングするとバグ取りが大変ですね。
久しぶりにこの感覚味わいました。

815:デフォルトの名無しさん
08/09/10 14:52:26
Cだといくら難しくても構造体とポインタは避けて通れないからね…

816:デフォルトの名無しさん
08/09/10 15:03:12
文法レベルで躓く男の人って・・・

817:デフォルトの名無しさん
08/09/10 15:40:58
Perlだと、呼び出しの後に関数の定義があっても、きちんと認識してくれるのですが、

---------------------------------------------------
func();

sub func {
print "in func";
}
---------------------------------------------------

以下、Rubyだとエラーが出ます。

---------------------------------------------------
func #=>undefined local variable or method `func' for main:Object (NameError)

def func
print "in func"
end
---------------------------------------------------

エラーを出さないようにするには、関数を呼び出しの前に書くしかないのでしょうか?

818:pl791.nas924.p-hokkaido.nttpc.ne.jp
08/09/10 16:30:23
>>817
Rubyには関数はない
クラスやオブジェクトに関数があるということもない
メソッドのことを関数だと解説している本やサイトがあるなら晒せ

で、答はYES
クラスやメソッドの定義式の評価は実行時に行われる
実行時ということは1行目から順に実行されてるときということで、
つまり定義前のメソッドが書かれてた場合はエラーだ

まあぶっちゃけた話をするとすぐ慣れる
関数定義みたいに後ろに倉庫的にどっさりあったほうがすっきりするよねと思うことは今もあるが

819:pl791.nas924.p-hokkaido.nttpc.ne.jp
08/09/10 16:31:19
お、何だ何だ

820:デフォルトの名無しさん
08/09/10 16:50:03
長い説明よりスクリプトの方にしてちょ

821:p3070-ipad304kobeminato.hyogo.ocn.ne.jp
08/09/10 17:02:55
メソッドと関数の違いがわかりませんえん

822:デフォルトの名無しさん
08/09/10 17:03:25
>>818
そもそもオブジェクト指向というパラダイム自体不細工。
所詮は商業主義の世迷い事。
いかにも新しいことを考えましたよ、って言いたいがために新しい言葉を作っただけのこと。
本来はメソッドは関数と呼ぶべきだし、クラスも構造体と呼ぶべき。

823:デフォルトの名無しさん
08/09/10 17:33:18
>>822 には触れないほうがいいよ

824:デフォルトの名無しさん
08/09/10 17:41:30
>>818
サンクス
了解しました

825:デフォルトの名無しさん
08/09/10 17:52:18
>>823
型理論よりもちゃんとした理論体系が確立されているんですか?
間違いを通そうとして話をそらさないでくださいよ。

826:デフォルトの名無しさん
08/09/10 18:18:59
オブジェクト指向の次って何があるの?

827:デフォルトの名無しさん
08/09/10 18:19:39
>>825
そういう事は、それ系のスレかお前さんのブログでやってくれ。
Ruby のスレでオブジェクト指向のパラダイムを受け入れてるのは当たり前だろ。

828:デフォルトの名無しさん
08/09/10 18:25:16
変数とオブジェクトの違いも曖昧な奴に、オブジェクト指向を語れるのか?
>>827と同じ意見だけど…

829:デフォルトの名無しさん
08/09/10 18:25:51
しかしよく釣れるスレだなw

830:デフォルトの名無しさん
08/09/10 18:26:42
>>828
誰と混同してるんだ?

831:デフォルトの名無しさん
08/09/10 18:32:31
>>826 エージェント指向とかアスペクト指向とか

832:デフォルトの名無しさん
08/09/10 18:32:57
なんだ厨房しかいないのかw

833:デフォルトの名無しさん
08/09/10 18:36:30
>>826
遅延評価、monad、arrow、pi-calculus

834:デフォルトの名無しさん
08/09/10 18:39:01
>>831
エイジェント指向ってのは一つのプログラムを作るための概念ではないよ。
もっとマクロな協調動作を目指したもの。
クラスタとかグリッドとかそっち方面の技術だよ。

835:デフォルトの名無しさん
08/09/10 18:40:20
技術ではなくて概念 か。

836:デフォルトの名無しさん
08/09/10 19:16:46
「能」という漢字を扱おうとすると必ず
unterminated string meets end of file
というエラーが出ます。どうしてでしょうか?

837:デフォルトの名無しさん
08/09/10 19:17:43
ほかの漢字のときは大丈夫なんです。
「芸能」がダメで、「芸」はOKなんです。

838:デフォルトの名無しさん
08/09/10 19:27:56
さあいますぐ



能\

それぞれをShift_JISで保存してバイナリエディタで開いてみるんだ

839:デフォルトの名無しさん
08/09/10 21:19:16
>>837
偉大なるKENT様のご説明

文字化けについて
URLリンク(www.kent-web.com)

840:デフォルトの名無しさん
08/09/10 21:47:26
KENT様・・・

841:デフォルトの名無しさん
08/09/10 22:42:40
>>801
うん。ひと晩で二、三本は生えてくるよ

842:デフォルトの名無しさん
08/09/10 22:43:37
何で朝鮮人は嫌われてるんですか?

843:デフォルトの名無しさん
08/09/10 22:56:51
>>842
汚くて臭いからさ

844:デフォルトの名無しさん
08/09/10 23:42:15
>>831
アスペクト指向はオブジェクト指向の二番煎じ。
ITバブル時代に新しい言葉を作ってビジネス機会を作ろうと企んだが失敗に終わりそうな概念です。
ほかにもajaxとかWEB2.0とか、いろんな言葉が作られて消えていきましたが、
全部商業主義的な目的から作られた物です。
この業界をかき乱すのもそろそろやめてほしい。

845:デフォルトの名無しさん
08/09/10 23:44:57
新しくも無いのにわざわざ特別な名前を与えていかにも新しくてすごそうに見えるように宣伝して儲ける手法。
全部誰かが裏で糸を引いているんじゃないかと思うほど手口が似ています。

846:デフォルトの名無しさん
08/09/11 00:10:05
>>844
あんたが「本物のプログラマ」だという事はよく分かったから、
お菓子好きの集まるこのスレにはこないでくれ。

847:デフォルトの名無しさん
08/09/11 07:48:45
>>844
ハスケルは学者ばかりですし、そっちではたくさん高級なメタ議論してますよ。

848:デフォルトの名無しさん
08/09/11 07:58:38
だからさ,スレ違いだしもう触れるな,っての

849:mx.narihara-lab.jp
08/09/11 08:38:43
>>844
> アスペクト指向はオブジェクト指向の二番煎じ。

そうなの? 「MOP の二番煎じ」だとばかり思ってたんだが…


850:デフォルトの名無しさん
08/09/11 20:56:56
Web2.0が商業用語ってどんだけ
商業にすらなってないわ

851:デフォルトの名無しさん
08/09/11 21:06:21
>>850
今日のおまんこの締まり具合はどうですか?

852:730
08/09/11 21:08:49
質問です

シンボルを宣言するとき:hogeのように記述しますが、
「:」というのはメソッドなのでしょうか?
「:」のようなメソッドを宣言する方法を教えてください。

853:デフォルトの名無しさん
08/09/11 21:27:10
>>852
メソッドじゃない。

つーかいい加減マニュアル読めよ

854:デフォルトの名無しさん
08/09/11 21:30:26
RubyスクリプトがOut of memoryで終了してしまうんですが
どこでメモリ消費してるのか調べるプロファイリングツールみたいのはありますか?

855:730
08/09/11 21:33:41
>>853
どこに書いてありますか?

856:デフォルトの名無しさん
08/09/11 21:40:14
Stringを作るための ' や Array を作るための [ と ] がメソッドじゃないのと同じようなもんだな

857:デフォルトの名無しさん
08/09/11 21:41:57
>>854
ruby -profile hoge.rb

ただし、これは死ぬほど重いので、rubygem の ruby-prof とかを使う

858:デフォルトの名無しさん
08/09/11 21:48:56
>>855
URLリンク(www.ruby-lang.org)

859:デフォルトの名無しさん
08/09/11 21:49:09
>>855
だから聞く前に読めよ

860:デフォルトの名無しさん
08/09/11 21:51:27
Out of memory は RubyMagick でよく見たなあ

861:730
08/09/11 22:02:15
>>858
ありがとうございます

862:デフォルトの名無しさん
08/09/11 23:41:24
煽るような回答しかしてない人はわからないんですね、わかります。

863:デフォルトの名無しさん
08/09/12 08:40:45
何を聞きたいのかイマイチ不明。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5392日前に更新/211 KB
担当:undef