- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们以this piece of code为例这使得记录器写入本地文件而不是标准输出:
f, err := os.OpenFile("filename", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
log.Fatal(err)
}
defer f.Close()
log.SetOutput(f)
作者把这段代码直接放进了
main()
功能,使其按预期工作。但是如果我想把这段代码放到一个专用的函数里面
main()
可能然后调用,那么它将不再起作用,因为
f.Close()
将在记录器被使用之前被调用。
logToFile()
的函数中):
main() {
logToFile()
log.Print("I'm going to end up in stdout\n")
}
可以这被移动到它自己的功能中,并且仍然按预期工作?
main()
中做这两件事。 ,但我认为如果我们将其划分为功能,代码会看起来更清晰,更多的 SoC。这是 Go 中的禁忌吗?
最佳答案
你在寻找这样的东西吗?
type closerFunc func() error
func logToFile(path string) closerFunc {
f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
log.Fatal(err)
}
log.SetOutput(f)
return func() error {
return f.Close()
}
}
使用:
func main() {
closerFn := logToFile("filename")
defer closerFn()
log.Print("logs to file\n")
}
关于go - 当资源超过周围函数的范围时,如何推迟资源清理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68693616/
我想以与 Angular 的 defer.resolve 和 Javascript Promise 对象相同的方式解析一个 Promise 对象。换句话说:我想创建一个要返回的虚拟 promise 对
我有两个实时制作和更新的图,如下所示: 我使用标准函数 plot() 和 lines() 生成了这些图。由于我实时生成和重新生成这些图,因此需要进行大量重绘和闪烁操作。 是否可以在两个图都完成之前推迟
我的一个页面上有一些 js 代码,它使用 ajax 加载一些页面元素。这些发生在页面的最顶部,不幸的是减慢了页面其余部分的加载速度。我想知道是否有办法推迟此操作,以便它在页面加载后加载。 这是我正在使
我有以下场景。 CompletableFuture result = CompletableFuture.supplyAsync(task, executor); result.thenRun(()
我经常更新用户表,它只是设置用户的最后一次上线时间,我想知道是否有一种简单的方法可以延迟它们并将它们在短超时(5 分钟或所以)。这将大大减少对我的用户数据库的查询。 最佳答案 如果您执行UPDATE
Gtmetrix 说有一些来自 youtube 的 JS 文件需要推迟。我删除了 iframe 并使用 jQuery 和经典的 Javascript 代码推迟了它,但这两种方法都不起作用。 Gtmet
我正在寻找阻止切换 RadioButton 的可能性,但仍然捕获 Click 事件。不幸的是,使用 Enabled=false 或 IsHitTestVisible=false 属性会阻止 Click
在我的小应用程序中,我从系统(不受我控制)收到一系列排队的 onEventXXX()。 不能保证那些 onEventXXX() 的时间。唯一可以保证的是,它们会按照放入队列的顺序接收。 在 onEve
我有一个在多个 View Controller 中使用 UIWebViews 的应用程序。 UIWebViews 用于渲染本地生成的 html,无需缓慢的网络访问。 为了节省内存,我仅根据 viewc
有时我想推迟 Promise 构造函数的执行,但仍然能够定义 Promise 链。我发现并稍微调整了以下方法,但由于我对 promise 的经验很少,所以我想知道 是否有更简洁的方法来做到这一点? 这
我刚刚遇到了使用 jQuery 的 .delay() 方法(v 1.4.2)尝试延迟以下 .load() 方法的问题。 像这样: $('myElement').delay(500).load('myP
我定义了一个成员变量如下。由于变量不会传递,所以我决定在这里使用 scoped_ptr 而不是 shared_ptr。 class ClassName { public: ClassName(
在开发我的作品集时,我意识到页面加载需要很长时间,因为必须加载所有图像才能完成页面加载。 所以,我想知道是否有办法阻止或停止加载,然后再允许加载。 意思是,立即阻止加载,然后单击已加载的另一个元素,比
这个问题已经有答案了: Defer loading and parsing of PrimeFaces JavaScript files (2 个回答) 已关闭 8 年前。 Google pagesp
我正在尝试推迟或异步加载 Trip Advisor 小部件,但由于某种原因它不起作用。 我认为异步或延迟可能不起作用,因为 Trip Advisor 脚本随后执行 document.write 命令。
我正在尝试使用 Ajax 将一些内容加载到页面中。加载的 html 包含一些 JavaScript 代码。即使代码包装在 $(document).ready 中,它也会在内容插入文档之前执行,因为在加
我正在使用模板字符串来生成一些文件,我喜欢新的 f 字符串的简洁性,用于减少我以前的模板代码,如下所示: template_a = "The current name is {name}" names
我有一个处理多个客户端连接的 Android 绑定(bind)服务。如果我理解正确的话,如果没有客户端连接,Android 将终止该服务。 但是,此时,在客户端断开连接后 1 分钟内,我的服务可能仍有
我的以下目标是: 获取决议列表 (按顺序)扫描每个内容,找到第一个导致成功直播的内容 为了测试这一点,我有 testVideoPresence: var testCounter = 0; functi
现在,我让用户在注册页面上输入数据,其中包括让用户输入他们的“计划类型”。我将此用户数据存储在 Firebase 上。 在用户提交上一个输入页面后的下一页上,我将用户带到一个输出页面,该页面使用 An
我是一名优秀的程序员,十分优秀!