我正在用Pharo开发一个简单的棋盘游戏,我的棋盘上有一个向单元格添加对象的方法。单元格只是对象上点的字典
作为方法的一部分,我想强制一个点应该大于零,但小于电路板的宽度和高度,换句话说,它应该实际位于电路板上。最好的方法是什么
我当前的尝试如下所示:
at: aPoint put: aCell
((((aPoint x > self numberOfRows)
or: [aPoint x <= 0])
or: [aPoint y > self numbe
我正在努力学习Smalltalk,所以我正在做“Squeak by Example”教程。我必须在系统浏览器中编写一个带有垂直箭头的方法,该箭头指向代码的开头。是否有Unicode标志或类似的东西,我可以在Windows中使用
提前谢谢(我知道,这是一个非常简单的问题,但我不知道线索)!:) 垂直箭头位于键盘上的^
Squeak是苹果公司赞助的项目,Mac键盘上有一个垂直箭头。在非Mac电脑上,a^是一个同等的替代品。此答案作为向上箭头上的历史注释。“”使用向上和向左箭头。“”还使用向上和向左箭
我正在做一个家庭作业,要求我们创建一个单元类,可以跟踪单元并对它们执行基本的算术运算。问题描述有这样一点,我不完全理解:
跟踪单位的最简单方法可能是给单位一个字典,将符号映射到整数。如果你除以一个单位,那么它在字典中有一个负值。通过将字典中每个符号的值相加,可以将两个单位相加。当它为零时,将符号扔掉
为了便于参考,这也包括在说明中:
[…]您可以编写一个表达式3大象/(1秒),它将返回正确的内容
有人能帮我照一下吗?如何使用字典映射这些类型的单位?我是不是让这条路变得更难了?听起来你的老师在给你
我看到了不同类的不同图标,如下图所示:
这是什么意思?其中一些带有红色图标,允许我添加评论,但是那些带有“c”和“ray”的图标,不允许我添加评论
注释提到了一些关于类责任合作者(CRC)设计的内容,但不清楚注释如何影响图标。感叹号表示类没有注释。Lightning用于异常类,文本气泡用于公告。带大括号的图标用于集合,带大写sigma(∑)的图标用于数量级(例如数字)
带有C的图标用于一般类,带有T的图标用于特征
还有一些班级有一个小的灰色/绿色/红色圆圈。它们显示此类的方法有一个与之关联的测
我只是被以下行为绊倒了。要复制它,请使用inst var创建一个类:
Object subclass: #Asdf
instanceVariableNames: 'countSeq'
classVariableNames: ''
poolDictionaries: ''
category: 'Asdf'
还有一个懒惰的init getter:
countSeq
^countSeq ifNil: [
countSeq:=#(0) asOrderedCollection.
我一直在跟踪,有一次我的图像被完全卡住了。当时我在调试器中,我尝试在ToDoDB root以下代码段的一部分上运行“inspect it”:
ToDoDB createDB.
ToDoDB commit: [ ToDoDB root add: ToDoItem new ].
ToDoDB release.
在那之后,我的形象不再对任何东西产生反应
我有点好奇为什么Magma在inspect action上会这样做,但我更感兴趣的是了解我解决这个问题的选项是什么?我应该扔掉这张照片,从头开始吗?
称绝地为Smalltalk宇宙的大师
我有C++/Python/Perl方面的知识,并且已经编写了5年以上的代码
我必须用Scratch-MIT的可视化编程语言来增加对机器人套件的支持。Scratch是使用Squeak创建的,Squeak是Smalltalk的一个实现
我打算读一本由蒂莫西·巴德(Timothy budd)和斯皮克(Squeak)所著的《闲聊》(Smalltalk),然后是奥斯卡·尼尔斯特拉斯(Oscar Nierstrasz)[http://squeakbyexample.or
我是Smalltalk的新手,我正在尝试在Smalltalk中存在的Integer类中添加一个新方法。该方法应进入“访问器”协议。我正在使用VisualWorks,但没有找到任何选项。我已经看过《开发者指南》,但我仍然不清楚。有人可以给我屏幕截图或逐步解决方案,如何继续进行
打开浏览器窗口[聊天启动器-->系统-->浏览器]
选择一个包
选择一个类
选择要向其添加新方法的协议
您可以在4个分区[包、类、协议、方法]下面找到“源”选项卡。
用方法的源代码替换“源”选项卡中的文本
转到浏览器菜单中的
当您在Pharo 3上加载Roassal 2并尝试任何涉及文本呈现的操作时,会收到以下错误消息:
StrikeFont»doesNotUnderstand: #glyphRendererOn:
我可以在论坛上找到一些建议,你必须这样做
启用True Type字体(设置浏览器→ 外表→ 使用自由类型)和
通过执行FreeTypeFontProvider current updateFromSystem更新字体列表。
但是错误仍然是一样的。Roassal 2似乎使用默认的标准字体来呈现文本
因
我有一个变形。这个变形被设计用来保存一行子变形,我使用了一个TableLayout策略,它工作得很好
但是,我希望此变形具有一个特定的子变形,该子变形始终位于变形的正下方。此特定子变形由变形的实例变量确定
在本例中,主变形为青色,子变形为红色、绿色和蓝色。紫色变形目前不是主变形的子变形,但它演示了我希望它作为子变形的位置
假设主变形的一个实例变量中有紫色变形,紫色变形也是主变形的一个子变形。在使用TableLayout组织变形的内容时,我将如何区别对待该子变形
我什么都没试过。这部分是因为我不
我想代表一个telefon国家代码(比如瑞典46,阿根廷54)。这是一个小的正整数
1) 子类化SmallInteger是建模的好主意吗
在代码浏览器中尝试此操作时,我得到:
SmallInteger immediateSubclass: #CountryCode
2) 我不知道立即子类:与子类:相比意味着什么
3) 如何创建我的CountryCode的实例?assmallinteger只能通过算术创建
我知道我可以使用封装,在我自己的CountryCode类中只需要一个SmallIntege
我正在通过Smalltalk中的shell32.dll对FindExecutableA(FindExecutable的Ansi版本)执行API调用,但当我发送UNC路径时,如
\\\serverName\\sharedFolder\filename
\\\myPcName\C$\sharedFolder\filename
它返回错误代码2,这基本上意味着系统无法找到给定的路径
奇怪的是,当我使用像
\\\serverName\\sharedFolder\filename
\\\myPcNa
问题是从未调用新方法,所以我无法设置值或调用初始化函数。而且在这样的事情之后:
Object subclass: Node [
|value|
new [
Transcript show: 'Test'.
value := 6.
]
getValue [
^value.
]
set:sth [
value := sth.
]
]
|data|
da
我在pharo的smalltalk有课。
我在全局字典中创建了一个实例,它是smalltak
Smalltalk at:#asd put: myobject new.
然后我错误地将此代码写入工作区
Smalltalk at:asd put: myobject new.
这给了我错误,不断地,
当一个人从键盘上按一个键时,我得到一个错误,我的对象不明白,这是byteArray,像那个样。
我如何解决这个问题?
或者如何重置全局字典?好的,这是一个有趣的问题
首先,我建议您不要这样做,因为
我想在Pharo中实现一个小类,所以我做了以下工作:
Object subclass: #Person
instanceVariableNames: 'name age'
classVariableNames: ''
category: 'Test'
我想模拟一个构造函数,所以我制作了一个如下的方法:
newName:aName newAge:aAge
"comment stating purpose of message"
name:=aName.
在旧版本的Pharo中,双击文本容器中的类名或任何单词时,它会高亮显示。然而,在Pharo5中,在Windows下,这不再起作用
有没有办法恢复到以前的行为
Smalltalk虚拟机版本。”共同解释者VMMaker.oscog-eem.1855 uuid:d8e4a3c2-a3bf-4adc-b224-80129003A1EF4 2016年5月4日
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid:d8e4a3c2-a3bf-4adc
我使用Amber Smalltalk创建了一个项目,并将其托管在远程服务器上,以便多人可以访问它。网络连接很慢,它会触发超时,只是认为设置“waitSeconds”可以解决问题
但是,我们不知道在哪里设置它。config.js文件是生成的,不能手动更改。仅在requirejs源中的默认设置中对其进行了更改。但那不应该是正确的地方。请告诉我如何解决这个问题。config.js是使用
自述文件:
local.amd.json文件描述了模块所在目录下的require.config部分
要将WaitSe
朋友
如标题所示,当我在Squeak 4.1中调试时,菜单“debug it”功能强大,有继续、重新启动、进入、结束、通过按钮等。每次进入按钮时,我都可以跟踪到特定代码,但通过按钮和通过按钮的区别是什么?Squeak调试器一开始可能有点吓人。让我们检查一下它的各个部分
上下文堆栈
调试器窗口顶部的列表表示上下文堆栈或调用堆栈。上下文是活动块或方法的状态
堆栈中最顶层的上下文是当前正在执行的上下文。通常情况下,从上下文返回后,程序在其下的上下文(即其发送方的上下文)中继续执行
代码窗格
上下文堆栈
你推荐VisualWorks用于海滨开发吗?还是弗吉尼亚?还是
我记得我看到过关于Cincom对webvelocity和/或seaside的承诺的讨论?我以为他们要离开webvelocity了?有人知道他们是否还在seaside投入精力吗?尽管Cincom的VisualWorks和Instantiation的VAST(以前是IBM VisualAge Smalltalk)是非常好的环境,但您应该检查他们的许可和定价
VAST正在投入大量精力,使所有内容都能正常运行,并且是最新的,这是有史以来最强
我经常在Smalltalk中读到“图像生成”过程。这个过程似乎是指从Smalltalk内部从头开始创建图像
但也有一个“剥离”过程,它似乎涉及删除对象以部署运行时
两者的区别是什么?有任何Smalltalk支持图像生成吗?术语图像生成通常指从安装附带的默认香草图像开始的过程,以及将某些项目所需的所有代码加载到其中的过程。这是在开发过程中定期进行的,以确保所有代码实际加载并在默认映像中正常工作
剥离是(有时)在部署之前完成的过程,从包含项目所有必要代码的映像中,将一些未使用的类和方法从映像中“剥离
是否有一本字典可以接受字母数字作为键?在这里花了一些时间让你们帮助分配UUID值之后,我现在意识到字典只接受整数。我计划使用UUID作为密钥
我的设计是为了一个总分类账——我的分类账成员被初始化为Ledger:=Dictionary new,我希望按照以下思路做一些事情:
postTransaction: GLEntry
ledger at: GLEntry UID put: GLEntry
字典可以用你喜欢的任何东西作为钥匙。在字典中使用字符串作为键是很常见的。例如,在Dolphin
在Pharo+Squeak中创建Traits时,是否应该使用T前缀,如TMyTrait,如果是,T应该在任何其他前缀之前,如TMPMyTrait(其中“MP”是另一个前缀),还是在其他前缀之后,如MPTMyTrait,这只是一种帮助您理解所写内容的惯例。
所以是的,加上T。
总是在开头加上T,这样你就可以立即看出这是一个特征
干杯
Smalltalk(特别是Squeak/Pharo)是否具有某种形式的可变函数
我刚刚在smalltalk中读到关于设计自己的控制语句的能力,而我是ifTrue的忠实粉丝:IfAlse:我很难想出一个好方法来实现任意if,if else,if else,…,else语句,我在想这些变量函数对于实现case语句是多么有用。差不多
假类
ifTrue: aBlock (... elseIf: aBoolean then: aSecondBlock ...) else: aLastBlock
vAr
我需要在Smalltalk中做一个项目,并使用关系数据库。我有点困惑,因为我在关系数据库方面找不到太多帮助,我需要在20天内完成这个项目。有人能给我指一个很好的例子教程吗?或者,将关系数据库与Smalltalk结合使用不是一个好主意吗。我需要建议。谢谢。如果您正在使用web界面进行开发,那么在与我的孩子们进行了长时间的实验之后,我们决定PHARO+GEMSTONE+SEASIDE确实是最好的方式。使用Pharo进行开发,使用Gemstone进行部署,忘记肮脏而麻烦的关系数据库部分。所需要的只是处
如何在Pharo或Amber Smalltalk中获取当前时区
(我也很好奇,我会如何通过查看图片来找到这些信息,或者是以某种方式或是以某种方式进行的——这里是一个巨大的Smalltalk新手。)哦!我刚刚了解了对象浏览器的工作原理,并发现:
在法罗:
DateAndTime本地时区。时区(LT-5:00)
琥珀色:
datenewastimestring'11:55:25 GMT-0500(美国东部时间)在琥珀色中,您也可以使用今天日期asTimeString。或者您可以使用内联JavaScr
我想得到在一个非常大的执行路径中执行的行。我正在使用Pharo4.0
有没有一种方法可以在不需要手动标记相关方法的情况下将其插入图像中?或者有一种替代方法可以帮助实现类似的结果?您想做什么?你需要测量覆盖率,还是整个执行路径的覆盖率?我不想要覆盖率,只想测量一条执行路径。我不知道你对整个系统的意思是什么,因为我的系统有不同的起点。你想在执行路径中衡量什么?太多的行被执行了行似乎很难与执行相关,因为它们只存在于源代码中。计算执行的字节码似乎更容易,我认为您可以干预解释器来完成这项工作
我开始调整Squeak类,让它们执行对我来说最好的行为。特别是,我添加了一条消息:MCGitRepository>>gitcomandwithoutput,并修改了另一条消息:MCRemoteGitRepository>>basicStoreVersion
我保存了图像。下次开机时,我会让更改生效。嗯
现在,假设我想保存我的更改并在明天加载到一个新的Squeak图像中。或者将它们移动到另一台计算机
我有自己的myClass向现有类添加方法,但在这种情况下,我还需要更改现有消息,
MCRemote
我开始学闲聊了。什么是最好的操作系统(就拥有更多更好的工具而言)和开发工具而言?在windows上发出吱吱声。在windows上发出吱吱声。大多数Smalltalk都是操作系统不可知论的,更重要的是,你可以在一个操作系统上开发并在另一个操作系统上部署。这些是Squeak和friends、VisualWorks、Smalltalk/X、VA Smalltalk。另一方面,您有一个Dolphin Smalltalk,它仅适用于Windows
关于工具,VisualWorks可能是最专业和最好的工具,
朋友,如何在Squeak4.1中打开txt文件,代码如下:
at: #f put: (FileStream open: '/root/test' mode: FileStream read) !
f do: [ :c | Transcript nextPut: c ] !
f close !
任何人都可以给出一些关于如何打开文件和执行+-*/公式的提示吗?
首先感谢:)这应该可以:
|file fileContents|
file := FileStream fileNamed: '/ro
我正试图与一位朋友在远程调试一个Smalltalk(Squeak)项目。除了我的项目,这是一个股票吱吱4.3的形象
有没有办法把我做过的项目而不是整个图片发给他?从世界菜单中,有“将项目保存到文件中…”和“从文件中加载项目…”两个选项,但它们似乎都被破坏了。加载简单项目导致错误“找不到键:MorphicModel4”。我将把它转发到开发人员列表使用Monticello。它非常容易使用,并且可以进行版本控制、合并和冲突解决。它也是(某种程度上)独立于平台的。尝试“将项目保存到文件”(打字?)似乎也
所以我想实现一个字典,在这里我可以把符号,比如#xyz,映射到一些数字值,比如1。给定一个输入,我必须能够确定输出中会出现多少次#xyz
我想我必须使用以下语法
Dictionary newFrom: {#xyz -> 1. #abc -> 2. #klm -> 3}
但我无法将这个概念应用到程序中。在闲聊中,如何引用特定的值密钥对
假设我的代码必须执行以下操作
10个苹果+5个苹果=15个苹果
或
10个苹果+5个桔子=10个苹果+5个桔子
然后在一些输入函数中,我必须执
我有一个适用于Pharo包(RPackages)的工具
为了便于访问,我想在Nautilus软件包上下文菜单中添加一个菜单项,这样就可以在Nautilus内的选定软件包上打开我的工具。这是可能的吗?要向Nautilus上下文菜单添加条目,可以使用AbstractNautilusUI菜单pragmas协议中定义的菜单pragmas之一
只需在您想要的任何类上定义一个带有pragma的类端方法。例如:
MyClass class >> myMenuEntry: aBuilder
&
如何在Pharo Seaside 3.2中捕获会话到期通知?
会话到期时,我需要将该用户从停用用户列表中删除。您可以将WASession子类化,并通过配置告知Seaside使用您的会话(请参阅WAApplicationConfiguration>>说明:)。在子类中实现#未注册的。此方法将在会话过期时执行(请注意,这可能不会立即发生,但仅在会话缓存触发对同一应用程序的下一个请求时才会发生)。348/5000我已尝试过。我遇到的问题是:当会话超时结束并且用户再次尝试登录时,#unregistred
对Pharo/Seaside来说相当陌生,我已经很久没有使用Smalltalk了。我正在尝试创建一个RESTful服务,但无法以我认为应该的方式使用pragmas使其工作。Ie这里是我在类TeamMembers中的list方法,它是WARestfulHandler的一个直接子类
list
<get>
^ String streamContents: [ :stream |
self teamMembers do: [ :each |
stream nex
如何让一个类用两个不同的名称公开同一个方法
例如,asDescripton函数执行相同的操作/重新导出asString函数,而无需简单地复制粘贴代码
Object subclass: Element [
| width height |
Element class >> new [
^super new init.
]
init [
width := 0.
height := 0.
]
asString [
^ 'Elem
我需要得到一个纹理到一个多边形中,但这些似乎需要一个无限形式作为颜色/填充
InfiniteForm不是解决方案,因为我以后需要旋转多边形形状,移动多边形形状也会对显示的纹理产生副作用。
如果可以缩放插入的纹理,这将非常有用
如果不替换现有的多边形(或至少保持多边形的形状),您将如何做到这一点?以下是解决您问题的另一个方法。
该解决方案包括两个阶段
阶段1:(drawTextures)我们使用BitBlt用纹理瓷砖填充表单。表单存储在名为texturing的实例变量中。此表单在第2阶段被裁剪
第
如何添加新方法或删除特定类的方法?或者,如果我尝试添加一个已经存在的方法,那么它将覆盖它(尽管在这种情况下,我可以删除旧方法,然后添加相同的新方法)
当方法本身被表示为字符串时,可以这样做吗?(我的意思是不使用外部文件之类的,而只是将方法编写为字符串)
例如,一个方法获取一个类、一个符号和一个字符串,该字符串是该方法的代码,并将此方法添加到aClass,如果存在,则覆盖旧方法:
in: aClass add: aSymbol sourceCode: aString
和使用示例:
in: Cla
我有这段代码(取自ProfStef,但可以是任何类的任何方法)。如何以编程方式获取Squeak/Pharo执行对象的顺序
我知道smalltalk文档中的执行顺序,但如果我在构建应用程序时需要这些信息,该怎么办。本质上,使用它来构建一个执行映射,以显示代码外观和执行方式之间的差异
另外,我需要大规模地完成这项工作。。。我不能用手做这件事
tutorial: aTutorialClass lesson: aSelector
| tutorial |
tutorial := aT
在Pharo和Squeak中,如果安装了CommandShell,则可以键入CommandShell open。它将打开一个命令窗口,基本上类似于bashshell或终端窗口,但它使用的是一种几乎微小的默认字体。我似乎不知道如何改变它
我发现smalltalk中的一般方法是浏览一个类的实现,看看是否可以找到一些可以对该类说的话来告诉它你想要什么,或者以某种方式修改该类,使其对其他类回答不同的问题,从而达到预期的效果。类似于InstanceOfcommandshell SomeView或Contr
因此,我试图跳过其他元素,将它们输入到集合中。然后我将集合转换回数组并尝试返回它。不过我不确定出了什么问题
altElement
| newColl x y |
newColl:= OrderedCollection new.
x := 1.
[x <= self size ] whileTrue: [x := x + 2 |
newColl add: (self at: x)].
y:= new
我刚刚使用系统浏览器在pharo中创建了我自己的包(MyPackage)和类(MyClass)。
这就是它的样子
Object subclass: #MyClass
instanceVariableNames: ''
classVariableNames: ''
category: 'MyPackage'
我理解“子类”和“类别”这两个术语,但没有理解其他两个术语(instanceVariableNames,classVariableNames)的含义。我觉得这个问题已
Gemstone/S通常通过netLDI服务访问。我在托管服务器上有一个Gemstone/S,我从笔记本中的开发环境连接到它
问题是,什么是最佳实践(或提供更稳定的环境):连接到本地netLDI服务并让它处理远程Gemstone/S,或者远程连接到在Gemstone/S服务器上运行的netLDI
我目前正在使用第二个选项(如上所述)通过SSH端口从笔记本中的tODE/Pharo设置向前连接到托管服务器上运行的netLDI服务。好的,Dale开发的tODE完全按照您描述的方式使用(第二个选项)。他
在Pharo中,我在更改特定字段的字体时遇到问题。我正在对OpenModel文件使用UITheme。以下是我的代码参考:
openModal
|builder dialog content login|
builder := UITheme builder.
content := (builder newLabelGroup: {
'Login' -> (login := (builder
n
我想在Pharo的背景下执行这个,最初是为了Squeak
Installer squeaksource
project: 'MetacelloRepository';
install: 'ConfigurationOfMagritte2'.
(Smalltalk at: #ConfigurationOfMagritte2) project latestVersion load: 'Magritte-Seaside'.
此代码将在以下情况下工作:
Gofer new
squeaks
尝试在Pharo 2.0中测试一些代码,这取决于删除的BlockContext,我能做什么?您可以下载Pharo 4并运行Magritte 3和Seaside 3.1,因为这是稳定的版本。2012年初引入的Magritte 3的主要变化是将描述移动到实例端,并将描述重命名为MagrittedDescription。除了
否则,只需查看4年前的pharo、seaside和pier邮件列表以及monticello存储库,看看有什么变化。由于Squeak和Pharo在过去4年中的改进,已经有了很多小的
给定矩形类中的两个整数变量“a”和“b”,如何绘制矩形?
我对smalltalk还不熟悉,我正在为一门课程学习它。
谢谢 Squeak使用Morphic作为其默认UI。因此,最简单的方法是创建变形:
一次评估所有三行。这将创建一个新的rectanglemorp实例,将其范围设置为从300和200创建的点(通过使用200参数将消息@发送到300),并向其发送openInWorld消息,使其出现在世界中。它将在屏幕左上角打开。我们本可以用另一个点参数发送位置:消息,但您也可以轻松地用鼠标指针抓住它,
我需要一个项目集合,我可以在Smalltalk中执行选择排序
最好用什么?列表、集合、链接列表等?第一件事:当然,您意识到选择排序是O(n^2),这意味着对于大型集合来说,无论实现如何,它都是低效的
从您的角度来看,列表和链表的语义应该是相同的。两者都允许重复,而set不允许。根据数据的正确性选择列表或集合
最后,若列表是以数组为背景的,而链表只是交换指针,那个么我会使用链表进行排序,因为交换是排序的关键
所有这些评论都是通用的;没有一个是专门针对Smalltalk的。如果研究算法和数据结构,您
我将我的交易添加到字典中,使用UUID作为键,使用交易对象作为值-这就是我所说的我的分类账:
示例(entriesForPosting是一组数组s,每个数组包含一个贷方分录和一个借方分录):
然后,我们按如下方式报告此分类账:
renderReport
GLReport := WATableReport new
rows: GeneralLedger getGLPostings asOrderedCollection ;
columns: (Ordered
所以我需要在smalltalk中获得Caesar密码,创建一个方法并使用它,以便对其进行以下测试
|aString|
aString:=Caesar new encrypt: 'CAESAR'.
Transcript show: aString.
我已经安排好上课了。但是我需要制定一个方法
我发现了这一点,但我如何才能从中找到一个方法,这样我就可以在操场上使用上面的所有代码
| i c strCipherText strText iShiftValue iShift |
strText :=
考虑以下书面代码:
oc do: [:elem | self doSomethingWith: elem]
众所周知,这里的潜在问题是以某种方式让#doSomethingWith:接触oc(一个OrderedCollection)并删除其中的一些元素
建议的解决方案是将上述内容写为
oc copy do: [:elem | self doSomethingWith: elem].
好的,是的,但我们并不是每次枚举时都复制所有集合。是吗
实际的问题是,每个元素的处理过程都很难遵循,最终可能会在
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 22 页