以便携方式在Smalltalk中使用符号的"最佳实践"规则是什么?我主要使用squeak和pharo,我知道他们都允许'foo'= #foo和#foo ='foo'为真,而其他Smalltalks则不然.我理解符号是用于识别的,不应该用来代替字符串.但是,至少可以安全地假设一个符号对象是一个可以发送消息的集合,例如copyWith:或do:,或者你必须先将它转换为某种Collection吗?
任何意见,将不胜感激.
什么是好的(交叉Smalltalk,mantained,文档)web框架或包(用较少的东西学习/适应)用于实现一个真正少量形式的静态网站?.ie:搜索框和联系表单.我没有"模型"或应用程序,所以我不是在搜索CMS或Web应用程序功能.
在任何Web框架中都开发了静态网站的任何示例或简单脚本?我对计数器或'Hello World'的例子不感兴趣.我在Seaside看到的例子看起来太复杂了,太多的嵌套块带有"程序化HTML",而我从AIDA看到的那些块需要一个模型对象,无法想象如何在没有模型的情况下工作.
实例创建方法,如
ClassName new
Run Code Online (Sandbox Code Playgroud)
为了帮助一些细节,
我们可以在抽象类中编写一个算术方法,
然后在子类中双重发送它们.
我们可以在实例创建中使用它吗?
我尝试了新的但它失败了.导致一些预定义的基本新方法.
我无法通过教程找到如何启用部署模式.它说要做:
WAGlobalConfiguration
setDeploymentMode这是不被承认的,
或做:
Initialize
| app |
app := self registerAsApplication: 'app-name'.
app preferenceAt: #deploymentMode put: true
Run Code Online (Sandbox Code Playgroud)
执行,但不删除工具栏.
有时您在工作区中编写脚本很长一段时间,然后您就会非常关闭该工作区.你能以某种方式恢复丢失的脚本吗?
Pharo Smalltalk - 消息转发,是否可以拦截消息并将其重定向到另一个对象(实例)?
在Objective-C中有forwardInvocation:在抛出异常之前调用它,这样你就可以对你收到的消息做一些事情并且一无所知.
在Smalltalk中有类似的东西,我可以将消息重定向到委托吗?
我目前在Smalltalk上构建我的第一个东西,我遇到了一个问题.我必须处理用户输入的数字,我需要将其除以2,仍然是一个整数.如果用户输入10,我将使用5,如果他们输入11,我必须使用6,但我显然会得到5.5.
如果我可以得到一个数字的mod我可以简单地确保mod = 0否则添加0.5并且它会做得同样好,但我无法找到如何在SmallTalk中进行mod操作,所有我的搜索最终都在关于实际社交小动作的不相关的东西,这是非常令人沮丧的.
所以,如果你能告诉我如何获得一个数字的模型,那将是很好的,如果你能告诉我如何用一个单独的函数进行整理,甚至更好.感谢您的帮助和时间.
更新:经过一些研究,我试着这样做:
mod := par rem: 2.
mod = 0 ifFalse: [ par := par + 0.5 ].
Run Code Online (Sandbox Code Playgroud)
其中"mod"是变量"par"的mod,如果它不是0,它应该加0.5到par.
我现在的问题是尝试在timesRepeat中使用par会出现"BoxedFloat64无法理解#timesRepeat"错误.所以我仍然处于相同的问题,或者只是需要一种方法来将浮点数转换为整数.
Pharo初学者在这里 - 我有一些(丑陋?)代码适用于特定情况,但想知道是否有更好(更可读)的方式.我想得到一个没有.git的仓库的名称(如果它在那里).
修剪n个字符会很棒.我正在寻找一个通用的解决方案.
我找到了,trimRight:但这不是一些角色; 它是白色空间或特定字符.
(projectName endsWith: '.git')
ifTrue: [ projectName := projectName
copyFrom: 1 to: projectName size - '.git' size - 1 ]
Run Code Online (Sandbox Code Playgroud)