标签: smalltalk

你怎么用Squeak?

我下载了Squeak,Image文件和Sources文件,但我无法弄清楚如何编写Smalltalk代码.有什么明显的东西我不见了吗?Squeak甚至是严肃的Smalltalk开发的正确IDE吗?

smalltalk squeak

10
推荐指数
5
解决办法
2044
查看次数

smalltalk singleton模式:如何初始化实例变量?

我在使用singleton模式初始化smalltalk中的实例变量时遇到了麻烦.(这里是另一个实现链接以便澄清)

这就是我所拥有的:

new

^UniqueInstance ifNil: [UniqueInstance := self basicNew.
                        UniqueInstance: instanceVar := Object new. ].
Run Code Online (Sandbox Code Playgroud)

最后一行(UniqueInstance:instanceVar:= Object new.)不起作用,但基本上我需要做的是:在将UniqueInstance返回给调用者之前,将instanceVar实例化为Object.

请注意,此"new"方法用作类实例化,并且该库是UniqueIsntance的实例变量(所需类的isntance).

谁能指出我正确的方向?

singleton smalltalk instance-variables

10
推荐指数
1
解决办法
4302
查看次数

字符串到整数Smalltalk

非常简单的问题我需要从用户获取一个整数,我只知道如何从中获取一个字符串.因此,如果有办法从用户获取整数或将字符串转换为整数,请告诉我.

string integer smalltalk type-conversion

10
推荐指数
2
解决办法
7299
查看次数

Smalltalk相当于Java的静态是什么?

Smalltalk相当于Java的静态字段和方法是什么?IOW,Smalltalkers在需要类级数据和/或方法时会做些什么?

java oop programming-languages smalltalk

10
推荐指数
1
解决办法
2148
查看次数

延续是Seaside的一个关键特征吗?

我正努力加快Smalltalk/Seaside的速度.根据维基百科,"海边是基于延续的Web应用程序框架".来自Java背景我不太熟悉continuation.

经过一些阅读后,我理解延续用于维护状态,从而保存进程的快照,并可以在以后恢复(类似于将Windows置于休眠模式).

这与使用"后退"按钮的Seaside最相关?使用代码块和"回调"与使用延续不同?

我还试图评估在Seaside实际使用延续的当前重要性.我很困惑,因为许多在线参考Seaside提到延续作为关键和定义功能.但是,我也发现一些文章提到在Seaside使用延续并不常用,实际上并不是一个关键特征.

非常感谢任何有用的输入,让我直截了当!

continuations smalltalk seaside

10
推荐指数
1
解决办法
709
查看次数

如何使用Gofer将Monticello软件包复制到另一个名称下的存储库

上下文是这样的:
一个包在几个存储库中开发了几个分支

  • squeaksource
  • source.squeak.org/trunk

发展停止source.squeak.org,其目标是到分支,以便有发表在一个库中的所有版本转回squeaksource.
但为了方便人们浏览和快速识别分支,我希望在squeaksource副本的名称中添加标准分支标识.
有没有办法自动化这项操作?可能还有Gofer?

smalltalk squeak pharo monticello

10
推荐指数
1
解决办法
266
查看次数

为什么Smalltalk中的方法默认返回"self"?

背景

在Smalltalk中,如果您没有明确地返回任何内容,则传递的消息将评估为接收者(或消息上下文中的"self").

例如,给定此方法:

MyClass >> myMethod
  Transcript show: 'hello'; cr.
Run Code Online (Sandbox Code Playgroud)

评估(doint"print-it")这个:

| myInstance |
myInstance := MyClass new.
myInstance myMethod.
Run Code Online (Sandbox Code Playgroud)

如果对最后一次调用执行<print-it>,则结果将是实例本身.

问题

  • 为什么这样设计?
  • 它背后的想法是什么?
  • 哲学背景是什么?
  • 它有什么实际好处?方便链接是否方便?

oop smalltalk visualworks squeak pharo

10
推荐指数
4
解决办法
1553
查看次数

在Pharo解析PetitParser的评论

是否有更简单的方法来解析1行注释?

comment
    ^ '//' asParser ,
      (#any asParser starLazy: (#newline asParser)) ,
      #newline asParser
                  ==> [ :result | nil "Ignore comments" ]
program
    ^ (comment / instruction) star
        ==> [ :result | N2TProgramNode new
                                setNodes: (result copyWithout: nil) ]
Run Code Online (Sandbox Code Playgroud)

我特别不确定(#newline asParser)和#copyWithout:的重复.

在Lukas的回答之后,我提出了更简单的以下解决方案:

program
    ^ programEntity star
        ==> [ :result | N2TProgramNode new setNodes: result]

programEntity
    ^ instruction trim: ignorable

ignorable
    ^ comment / #space asParser

comment
    ^ '//' asParser ,  #newline asParser negate star
Run Code Online (Sandbox Code Playgroud)

smalltalk pharo petitparser

10
推荐指数
1
解决办法
265
查看次数

Erlang中的进程/消息和Smalltalk中的对象/消息有什么区别?

我试图了解Smalltalk中的对象/消息与Erlang中的进程/消息之间的区别。我阅读了有关该主题的以下文章

据我了解,在Smalltalk中,所有事物都是一个对象,并且所有事物都具有相同的“对象/消息”抽象-即使数字1是只能通过消息传递才能到达的对象。是1在Erlang / Elixir中进行的过程吗?Erlang中的所有内容是否都是对消息/程序范例的响应?您可以向Erlang中的号码发送消息吗?

非常感谢。

oop erlang smalltalk message-passing elixir

10
推荐指数
1
解决办法
113
查看次数

Smalltalk和python之间的区别?

我现在正在学习Smalltalk.它看起来与python非常相似(实际上,相反,python与Smalltalk非常相似),所以我想知道,作为一个python爱好者,如果我真的值得我研究它.

除了消息传递,Smalltalk和python之间还有哪些值得注意的概念差异,这可以让我看到新的编程视野?

python smalltalk

9
推荐指数
3
解决办法
5273
查看次数