class Tour
def destinations
threads = []
[:new_york, :london, :syndey].each { |city|
@threads << Thread.new {
where = city
goto(where)
}
}
threads.each(&:join)
end
def where=(location)
Thread.current[:city] = location
end
def where
Thread.current[:city]
end
def goto(city)
puts "I am going to visit #{city}."
end
end
Tour.new.destinations
Um die Thread-Lokalvariable in Methode goto zuzugreifen(), der die Thread-Lokalvariable ist, um es wie goto(where)
übergeben werden, wenn es viele andere ähnlichen Verfahren tun müssen, Dinge, die auf der aktuellen Thread-Lokalvariablen basieren: Stadt, dann muss sie auch an andere Methoden übergeben werden.rubin lokaler Thread variable Zugriff von anderen Methoden
Ich denke, es gibt eine elegante/Ruby-Methode zu vermeiden Thread lokalen Variable als Option zu übergeben, wie sieht das aus?
Treat es weniger wie eine imperative Sprache und mehr wie eine objektorientierte Sprache. Objekte sind der Weg dorthin! –