问题标签 [squeak]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1726 浏览

smalltalk - perform 的性能开销:在 Smalltalk 中(特别是 Squeak)

平均而言,我可以合理地期望perform:比发送文字消息慢多少?我是否应该避免perform:在循环中发送,类似于对 Perl/Python 程序员的警告,以避免在循环中调用eval("...")Compiler evaluate:在 Smalltalk 中)?

我主要关心 Squeak,但也对其他 Smalltalks 感兴趣。此外,perform:with:变体的开销是否更大?谢谢

0 投票
1 回答
1574 浏览

smalltalk - 何时使用 Seaside 组件,何时使用简单的渲染对象?

我最近一直在 Seaside+Squeak 中开发一个 Web 应用程序,并发现它是一次美妙的体验。Seaside 确实比其他所有框架都遥遥无期,我觉得我好像在更高层次的抽象上工作(在其他框架让你处理的 HTTP 请求/响应周期和 HTML 模板之上)。

也就是说,我对 Seaside 组件有点困惑。我最近不得不在一个组件上显示一个对象列表(类似于 stackoverflow 的首页)。起初我将每个对象都设为一个组件(WAComponent 的子类),但事实证明这非常浪费,而且我必须在父组件中动态设置#children 才能使其正常工作。然后我尝试让它们呈现对象(不是 WAComponent 子类的对象,并使用 renderOn: 而不是 renderContentOn: 进行呈现,就像组件一样)。这行得通,但现在他们不能再像组件那样访问会话对象中的全局状态(使用#session)。然后我发现了“WACurrentSession 值”,它使任何对象都可以访问当前的 Seaside 会话对象。我现在能够让它们渲染对象。此外,

除了需要呼叫/应答或回溯状态之外,还有哪些其他原因需要使用组件而不是渲染对象?

0 投票
1 回答
58 浏览

squeak - SqueakMap 无法在新的 3.10 开发映像中工作

我刚刚从 Damien Cassou 下载了一个新的 Squeak-dev 图像,点击了 SqueakMap,并得到了在 SqueakMap>>categories 中的错误,objects 实例变量是 nil,但不应该是。我不可能是唯一一个有这个错误的人,是吗?我应该怎么办?

0 投票
5 回答
2565 浏览

smalltalk - GNU Smalltalk 与 Squeak 的兼容性如何

我正在开发一个完全不需要图形的应用程序,它只是数据操作。问题是我在一个相当保守的环境中工作,我认为我无法向我的经理出售一个吱吱声的应用程序(我觉得明亮的颜色、圆形的界面和一般的“这到底是什么” “吱吱声会吓跑他们)。所以我正在考虑在 GNU Smalltalk 下运行该应用程序,因为更“传统”的命令行界面不太可能吓跑利益相关者。

那么,任何人都可以提供或指出我在 Squeak 和 Gnu Smalltalk 之间兼容或不兼容的功能/类的列表或集合。换句话说,将应用程序从一个应用程序移植到另一个应用程序有多难(再次假设它是非图形的,因此无需担心形态)?

谢谢!

0 投票
4 回答
3789 浏览

smalltalk - 吱吱声中的新行

我想做这样的事情:成绩单显示:'\ n'。如何?

0 投票
5 回答
1121 浏览

smalltalk - 如何在吱吱声中动态更改方法的名称?

我有一个类,我想在运行时更改特定方法的名称。我猜“行为”类中有一个方法可以做到这一点。但我就是找不到。有什么帮助吗?[吱吱声]

0 投票
5 回答
960 浏览

oop - Smalltalk 中的消息转发

所以我正在编写一个应用程序,其中一个对象有一堆将消息转发到的委托对象。这个想法是我可以说

并且 aMessage 将被发送给 someObject 的所有代表(对于 aMessage 的任何值)。我能够做到这一点的唯一方法是:

它有效,但必须有更好的方法。该解决方案将参数限制为字符串,并且非常难看。有谁知道转发消息的更清洁、更好的方法?

顺便说一句,我正在使用 squeak,但最好使用独立于实现的解决方案;)

编辑:我应该补充一点,代表与对象属于同一类,所以我不能只覆盖 DoesNotUnderstand:。

0 投票
4 回答
499 浏览

smalltalk - 在 Squeak 中,如何包装每个发送方法?

我创建了一个类,在那个类中我有一个方法'sendMessage: to: withArgs:',它接收一个对象、一个消息和一个参数数组。该方法用于向对象发送消息并执行一些算法。要使用此方法,我必须创建我创建的类的实例 x 并执行 x sendMessage: '+' to: '7' withArgs: '#(5)' 之类的操作。使用参数 5 向对象 7 发送消息“+”的结果,以及我的算法所做的一些事情。但我想要的是该算法将在每个方法调用中使用,这意味着 7+5 将调用我的'sendMessage: to: withArgs:'。我怎样才能做到这一点?或者至少,在发送给每个对象的每个方法中是否调用了某些东西?

0 投票
3 回答
2461 浏览

smalltalk - 如何在 Squeak 中创建全局变量?

我不是指类变量。我想要一个可以在任何地方使用的变量。我应该在哪里定义它?[吱吱声]

0 投票
3 回答
290 浏览

smalltalk - Squeak 系统浏览器问题

我正在为 OOP/OOD 类使用“Squeak By Example”(SBE)图像(学校修改版本)。但是,我的系统浏览器缺少 SBE 中出现的一些功能。我假设有一些配置选项可以帮我找回它们,但我还找不到它们。

我的问题是:

1) 如何取回按钮?在底部窗格中应该有一堆按钮(浏览、发件人、实施者、版本、...、源)。我的按钮不见了。

2)如何让按钮上方的小工作区出现?顶部窗格下方和按钮上方应该有一个我可以输入的区域,但它没有出现。

提前致谢!

罗伯特

编辑 - 我确实在首选项浏览器中闲逛并尝试了很多设置。我设法让按钮回来,然后又把那个小的(未知名称)工作区窗格拿回来,但我不知道怎么做。我试图再次系统地关闭东西以找出哪些设置控制了什么,但我无法确定是什么控制了这两个问题。所以即使我有它的工作,我希望一些知识渊博的人让我知道如何控制这些,因为它可能会帮助我学习......