当我尝试从类中的另一个方法访问实例变量的方法时,我不确定为什么会失去对实例变量的方法的访问权。
该程序是一个聊天程序(正在进行中)。很抱歉,如果这是一个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
答案 0 :(得分:2)
您的def initialize()
中有拼写错误,因此初始化客户端实例时不会调用它。因此永远不会定义@s
(所以它是零)。