在Smalltalk中,方法体中经常有两个术语:self和yourself.
他们之间有什么区别?
如何在Squeak中编写GIU?我是Smalltalk的新手,我现在正在使用Cincom的VisualWorks,但我想尝试一下Squeak.我看到Squeak有Morphic的图形,但对于我的生活,我似乎无法找到一个编写基于MVC的GUI的包.
model-view-controller user-interface smalltalk visualworks squeak
我正在寻找使用PetitParser以及测试包中提供的PPArithmeticParser和PPLambdaParser以及Lukas的几篇博客文章的其他示例?如果有人愿意与他们分享,那将非常感激.
更新:https
://github.com/NicolasPetton/jtalk/blob/master/st/parser.st更新:https://github.com/dmatveev/waste/blob/master/wastex.st
让他们来吧!
在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>,则结果将是实例本身.
我试图比较Smalltalk中的两个字符串,但我似乎做错了什么.
我一直收到这个错误:
未处理的异常:非布尔接收器.继续求真.
stringOne := 'hello'.
stringTwo := 'hello'.
myNumber := 10.
[stringOne = stringTwo ] ifTrue:[
myNumber := 20].
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
在Squeak/Pharo中是否有任何Smalltalk解析器允许我在Squeak/Pharo中浏览VisualWorks代码?我有兴趣阅读以块格式(而不是XML格式)导出的代码.
澄清:我不需要提交代码.
谢谢
如何在Cincom VisualWorks中按两个条件对集合进行排序?
示例:我有一个包含人员的OrderedCollection,并且想要一个新的集合,该集合首先按年龄对人员进行排序,然后如果年龄与人名相同.
希望你能理解我的英语!谢谢..
在Smalltalk中,系统浏览器是几乎任何东西的核心工具.Glamour似乎是使用声明性脚本语言构建通用浏览器的软件包.从论文中可以看到VisualWorks和Pharo,但我在这里只讨论Pharo版本.
除了Glamour相对于旧方法的技术优势之外,对于OmniBrowser的支持似乎在2011/2012年停止.所以从2009年开始的Glamour可能是OmniBrowser的合理继承者.但是有一个令人惊讶的惊喜:另一个"浏览器项目"被创建,它被称为Nautilus.
可能是因为开发人员注意到作为浏览器实现框架和类浏览器很难维护,OmniBrowser在Glamour中被"拆分"用于浏览器框架和Nautilus for Smalltalk Class Browsing.引自Nautilus chpater:"它的目的是浏览RPackage,与RB重构引擎兼容,具有环境意识并与公告合作"
捕获每个Smalltalk新手的东西是add:不会返回"自我"但是添加的对象.
例如,使用此代码:
myCollection := OrderedCollection new
add: 'Peter';
add: 'John';
add: 'Paul'.
Run Code Online (Sandbox Code Playgroud)
myCollection将包含字符串"保罗",而不是集合本身.
这是因为add:返回正在添加的对象,整个级联表达式的计算结果是最后发送的消息.
相反,它应该写yourself在最后:
myCollection := OrderedCollection new
add: 'Peter';
add: 'John';
add: 'Paul';
yourself.
Run Code Online (Sandbox Code Playgroud)
add:这种行为有什么好处?我在Pharo Smalltalk中使用过pragma,并了解它们是如何工作的,并且已经看到了Pharo中使用它们的例子.
我的问题是:
smalltalk ×10
visualworks ×10
squeak ×8
pharo ×7
oop ×2
parsing ×1
petitparser ×1
sorting ×1
string ×1