查看: 3748|回复: 2

[已经解决] 请问下释放窗口是不是就是关闭窗口的意思啊?

[复制链接]
梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
发表于 2021-7-5 06:20:20 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
经常在 def main 看到注释释放窗口四个字,请问下释放窗口是不是就是关闭当前窗口的意思啊?
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2021-7-5 09:25:43 | 显示全部楼层
更准确来说是删除窗口并释放该窗口占用的内存资源。这样执行后窗口会立即消失,看着像关闭了。

评分

参与人数 1赞 +1 收起 理由
taeckle + 1 明白了!

查看全部评分

回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2021-7-5 12:50:13 | 显示全部楼层
表现上是关闭窗口

但从概念上来看,被关闭的窗口可以重新打开
而被释放的窗口表示这个窗口以后再也用不到了,需要的时候必须重新创建一个新的

  1. def hello
  2.   a = 123456789
  3. end
  4. hello
复制代码


就像这个 hello 方法里面的 a 一样,hello 方法执行完,这个 a 就再也用不到了,这个 a 就可以释放了,释放了的 a 也不再占用内存存着了
程序代码自动把用不上的 a 释放掉的功能叫“垃圾回收(GC)”,ruby 支持垃圾回收

而窗口精灵这些不是 ruby 自带的,所以 ruby 没法自动垃圾回收,
因此需要手动调用释放来通知程序这个变量再也用不到可以回收了

如果一个变量再也用不到了,但是又没有代码通知程序这个变量可以回收,那么程序占用的内存就会因为这些用不到的变量而越来越大,这就是“内存泄漏”

评分

参与人数 2星屑 +100 赞 +2 收起 理由
RyanBern + 100 + 1 认可答案
taeckle + 1 全场最佳!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部