私有方法`puts'调用nil:NilClass(NoMethodError)

时间:2014-08-06 01:41:44

标签: ruby variables methods instance puts

当我尝试从类中的另一个方法访问实例变量的方法时,我不确定为什么会失去对实例变量的方法的访问权。

该程序是一个聊天程序(正在进行中)。很抱歉,如果这是一个noob问题,我正试图从我已经知道的其他语言中学习Ruby。

require 'socket'      # Sockets are in standard library

class Client
    def initilize()
        hostname = 'localhost'
        port = 2000
        @s = TCPSocket.open(hostname, port)   
    end

    def startChat  
        puts "Starting Client"
        message = gets.chomp
        @s.puts(message)

        while line = @s.gets   # Read lines from the socket
            puts line.chop      # And print with platform line terminator
            @s.close               # Close the socket when done
            gets.chomp
        end
    end
end

c = Client.new()

c.startChat

1 个答案:

答案 0 :(得分:2)

您的def initialize()中有拼写错误,因此初始化客户端实例时不会调用它。因此永远不会定义@s(所以它是零)。