2013-08-26 5 views

답변

2

인용 한 내용이 실제로 그 출처가 밝히는 내용이면 정확성이 부족합니다. 기간의 정확한 사용 하에서, 참으로 모순이다.

그러나 사람들은 Module이라는 용어를 사용하여 "ModuleClass"이 아닙니다. 이 의미에서 어떤 의미인지는 모순이 아닌 것으로 써 있습니다.

3

모듈은 BRU,

module Foo 

    @state = "a" 

    def self.state 
    @state 
    end 

    def self.stateful 
    @state = "b" 
    end 

end 

봐 상태를 가질 수 있습니다!

Foo.state # a 
Foo.stateful # b 
Foo.state # b 
4

오 형제, 당신은 모듈/클래스 인스턴스 변수와 모듈/클래스 메소드에 대해 잊어 버린 경우, 당신도 클래스가 상태를 유지하는 것이 말할 수 없다 - 그것은 상태를 유지 클래스의 인스턴스를 때문에. 클래스에는 인스턴스 메서드 목록이 있습니다. 클래스의 전체 섹션도 기술적으로 잘못되었습니다.

결론은 루비의 객체 중 99.99 %가 객체이고 모든 객체가 상태를 유지할 수 있다는 것입니다. 클래스는 객체 (객체 생성자)이고 모듈은 객체 (객체 생성자는 아님)이며 클래스의 인스턴스는 객체입니다.

나는 국가에 대해 걱정하지 말 것을 제안합니다. 네임 스페이스로서

1) : 단지 두 가지 모듈에 사용될 수 있다는 사실에 집중

module MyFunctions 
    def MyFunctions.puts(str) #...or: def self.puts(str) 
    Kernel.puts "***" + str 
    end 
end 

puts 'hello' 
MyFunctions.puts 'hello' 

--output:-- 
hello 
***hello 

2) 방식의 패키지로가 포함되는 것으로, 예를 들어 수업 중 :

module AnimalTricks 
    def speak 
    puts @noise 
    end 
end 

class Dog 
    include AnimalTricks 

    def initialize 
    @noise = "woof" 
    end 

end 


class Mouse 
    include AnimalTricks 

    def initialize 
    @noise = "sqeak" 
    end 

end 

Dog.new.speak 
Mouse.new.speak 

--output:-- 
woof 
sqeak 
+0

* 친구 * 의심의 여지가 있습니다. 도와 줄래 ? 나는 [File # ctime] (http://www.ruby-doc.org/core-2.0.0/File.html#method-i-ctime)과 [File # mtime] (http : //www.ruby-doc.org/core-2.0.0/File.html#method-i-time). 당신이 나를 도울 수 ? :) –