MyClass::empty().empty
私はサイドのMyClassに空のメソッドを実装する必要がありますか?その中に何を書きますか?これらのRubyの概念の実装方法は?次のように、このような呼び出しがどのように機能するかはわかりません:
x = MyClass::empty().add("a").add("b")
空であれば単にこれを呼び出すのでしょうか?
答えて
あなたはその中に何を書きますか?あなたは何をしたいのですか?
empty
という名前のクラスメソッドがあり、(a)パラメータを取らなかったか、(b)それらをデフォルトにしたempty
メソッドを持つものが返されます。
class MyClass
def self.empty
return WithEmpty.new # Or existing WithEmpty
end
end
またadd
方法を持っている何かを返す必要があり、それ自体を返します。
class WithEmpty
def initialize
@a_list = []
end
def add x
@a_list << x
self
end
def empty
@a_list.empty?
end
end
あなたがしようとしていることを説明した方が簡単/迅速になります。すぐには分かりません。
pry(main)> MyClass::empty()
=> #<WithEmpty:0xa01a090 @a_list=[]>
pry(main)> MyClass::empty().empty
=> true
pry(main)> MyClass::empty.empty
=> true
pry(main)> MyClass::empty.add("hi").add("bye")
=> #<WithEmpty:0x9fc8d1c @a_list=["hi", "bye"]>
あなたはMyClass
のいずれかでそれを保存しない限り、(不完全メソッドは、クラス、インスタンスではなく、方法であるため、)、またはあなたがリターンを保存する今、あなたは、「内部」クラスのリストを取得する即時方法がありませんチェーンメソッドの最後の束からの値。
インスタンスを保存すると、MyClass
にはどのようなことが起こりますか?繰り返しますが、達成する方法に焦点を当てるのではなく、実際に達成しようとしていることを定義する必要があると考えることはできません。目標は何ですか?
まず、配列の「追加」メソッドはありません。方法であなたが混合しているクラスとインスタンスメソッド:
class MyClass
def self.empty
return MyClass.new
end
def initialize
@arr = []
end
def empty
@arr.empty?
end
def add x
@arr << x
self
end
end
その後:
pry(main)> MyClass.empty
=> #<MyClass:0x9aea390 @arr=[]>
pry(main)> MyClass.empty.add("ohai").add("kthxbai")
=> #<MyClass:0x99f505c @arr=["ohai", "kthxbai"]>
しかし、再び、あなたが記述しているあなたは、このような何かを意味しない限り、まだ、意味がありません私は官能的ではない。どのようにアレイにアクセスしたいですか? MyClass
のポイントは何ですか?なぜ配列を使用しないのですか? MyClass
の目的は、コンテキストなしで、何を示してきたことは多くの意味がありませんので、それを実装するための合理的な方法は、困難であるあなたに言って、ある何のための任意のガイドラインなし
pry(main)> a = []
=> []
pry(main)> a.empty?
=> true
pry(main)> a << "ohai" << "kthxbai"
=> ["ohai", "kthxbai"]
pry(main)>
pry(main)> a.empty?
=> false
。
1. WithEmptyとは何ですか?私はそれが空であるかどうかをチェックしたい配列を持っていますが、それをチェックするとは思わないでしょうか?ここで私がしようとしているのは、配列に項目を追加することです。私は何年か前からいくつかの古いクラスの素材を次のようにしています。何らかの理由で:: empty()。add(---)。add(---)。add(---) – antonpug
空の配列をチェックするには、空の配列を空にします。更新を参照してください。 –
はい。実際にRubyを学ぼうとしている "目標"はありません。私がクラスを受講した時から、本当に古いクラスのいくつかの例に続いて。 – antonpug
- 1. oopの概念の実装
- 2. HashMap実装の概念
- 3. アンドロイドのオブジェクトプーリング概念の実装
- 4. sqlite概念からcoredata概念へ?
- 5. 概念/ルールの実装/文字列の操作
- 6. C++で単純なサーバー/クライアントの概念を実装する
- 7. この未来/状態概念をスカラーのモナドとして実装する方法
- 8. JavaからRDFフリーベースの概念を読み取る方法は?
- 9. クラスの概念
- 10. インデックスアクセスの概念
- 11. メークファイルの概念
- 12. 概念
- 13. java threadsの概念
- 14. Windowsワークフローランタイムの概念
- 15. UNIXブロックバッファキャッシュの概念
- 16. HTMLセキュリティの概念
- 17. C++スレッドの概念
- 18. Infinityループスライダの概念
- 19. JPAリレーションシップマッピングの概念
- 20. Javaインターフェイスの概念
- 21. 私はOOPの概念をJavaで実装しようとしています
- 22. RubyでのRESTfulサービスの実装方法
- 23. リレーショナルデータベース言語を使用したキーストアとキーストアの実装の概念
- 24. この概念は何と呼ばれていますか?
- 25. TDDの概念のレール
- 26. winformsのマスター - チャイルドページの概念
- 27. Twitterのオフラインサイトの概念
- 28. C#のプライベートクラスの概念
- 29. Linux/Unixの「パフォーマンスカウンタ」の概念
- 30. C#のベンチマークの概念?
'MyClass :: empty()。empty'は何を返しますか?なぜ単に 'MyClass :: empty()'だけではないのですか? – Reactormonk
私はちょうどRubyを学んでいて、Rubyクラスを取ったときの例をいくつか見てきました。 MyClass :: empty()。emptyはtrueまたはfalseを返します。なぜ空ではなく.emptyなのか分かりませんが、そのメソッドが何かを返すかどうか、あるいはそのプロパティにアクセスしているかどうかという問題ではありませんか? – antonpug
どのようなタイプの空()戻りますか? –