سؤال
هو في غاية الأهمية أنني دائما قريبة Syslog عندما انتهيت من استخدامه ؟ هل هناك تأثير سلبي كبير من لا يفعل ذلك ؟
إذا اتضح أن أنا بالتأكيد بحاجة إلى ما هو وسيلة جيدة للقيام بذلك ؟ أنا فتح Syslog في صفي منشئ و أنا لا أرى وسيلة للقيام الدرجة المتلفات في روبي ، وحاليا لديك شيء يشبه هذا:
class Foo
def initialize
@@log = Syslog.open("foo")
end
end
لا نرى على الفور مكان Syslog.close
يجب أن تكون الدعوة, ولكن ماذا تنصح ؟
المحلول
طريقة فتح يقبل كتلة.تفعل شيئا من هذا القبيل:
class Foo
def do_something
Syslog.open do
# work with the syslog here
end
end
end
نصائح أخرى
يبدو أنك افتتاح كطبقة متغير...لذا الطريقة الصحيحة أن تفعل...
class Foo
def initialize
@@log = Syslog.open("foo")
end
def Foo.finalize(id)
@@log.close if @@log
end
end
على الرغم من أن هذا ليس necesssarily يمكن التنبؤ بها أو دعمها.إنها طريقة للقيام بذلك إذا كنت ذاهب للحفاظ على رمز الطريقة التي لديك.
لا تنتمي إلى StackOverflow