扩展Pharo Smalltalk类行为的最佳方法?

我想用一个方法来扩展String类,用它从字符串中创建url段塞。我在这里找到了一个链接,显示了如何将扩展移动到其自己的包中: 然而,我在Pharo Smalltalk中找不到任何“移动到软件包”选项。用新方法扩展核心类可以吗,或者有更好的方法吗?在Pharo或Squeak中,将MyPackage的扩展方法放在名为*MyPackage的方法类别中(或者如果您想更具描述性*MyPackage slug) 这些类别中的方法自动属于MyPackage包(至少从Monticello的角度来看)“用新方

Smalltalk 运行GLORP测试

我正在尝试将GLORP放入pharo 2.0图像中。我设法加载了GLORP,PostgresV2驱动程序,然后更改了GlorpDatabaseLoginResource默认登录参数。在那之后,我开始运行从PostgresV2 tests TestPGConnection开始的测试,在这个测试中,我得到了两个失败testFieldConverter2和testFieldConverter3 在我运行glortest之后。在674次测试中,我只通过了353次。这正常吗?我正在使用testRunner

Smalltalk 初始化类中的矩形

我有一个名为Map的类。我想从地图内的矩形类原点:0@0角:50@40初始化一个矩形。所以,当我尝试在工作区中作为 myMap := Map new. 它应该返回我(0@0)角:(50@40) 我试过: 初始化 矩形原点:0@0角落:100@100. 但它不起作用?有什么想法吗?看,如果要初始化实例变量,那么必须首先定义它: Object subclass: #Map instanceVariableNames: 'rectangle' ... 然后初始化它: initialize

Smalltalk Smalltallk—如何获取类的对象(当前实例)中所有实例变量的数组(或集合)?

假设我们有一个类并实例化它,创建该类的实例。这个实例有许多由类定义的(实例)变量,我需要使用它们。我希望在数组或某个集合中获取所有这些(实例)变量,这样我就可以遍历它们并将它们设置为某个值,而不是nil 如何执行此操作?您可以将#allInstVarNames发送到类(行为),以获取它和超类定义的所有实例变量的名称。如果不需要超类变量,可以使用#instVarNames 假设var是您需要处理的变量。然后,您可以获取实例变量名的集合并对其进行迭代 您可以使用#instVarNamed:put:按

如何在GNU Smalltalk中运行GUI相关代码?

我有以下代码表单Dolphin Smalltalk: digitalClockProcess := [[ Processor sleep: 1000. (View desktop canvas) font: (Font name: 'Arial' pointSize: 36) beBold; text: Time now printString at: 10@10; f

Squeak Smalltalk中方法的撤消删除

如何撤消Squeak Smalltalk中方法的删除 “世界菜单”->“打开”->“简单更改分拣器” 在右上窗格中,选择从中删除方法的类 在中间窗格中,选择删除的方法 右键单击方法名称,弹出一个菜单 选择“版本” 当版本工具出现时,选择顶部(最新)版本,即您删除的版本 单击“还原”按钮 浏览类时,您将看到该方法已还原。如果使用OmniBrowser和重构工具,您可以像在任何其他现代编辑器中一样,对所有代码更改执行无限的撤消/重做操作。在上下文菜单中选择重构>撤消。您可以打开更改文件: 屏幕顶部

Smalltalk 如何在删除所有者时检测子变形的删除

如果我有一个包含子变形的变形,并且我删除了它,那么会向子变形发送哪些消息删除未被发送 情况是这样的。我有一个容器变形(不是子类),它包含MyMorph类的一些子变形。在我打开world中的容器变形后,我关闭它(从变形光环,或者通过从检查器发送它delete。我希望MyMorphs在那个时候做些事情。但我不想只为容器变形创建一个子类。(如果我这样做了,我就可以处理delete并让它向每个MyMorph发送一些消息)。那么,在处理delete时,是否有一些消息确实由Morph发送到它的每个子Morp

Smalltalk 如何在Squeak中弱引用单个对象

Squeak Smalltalk支持弱引用集合,但似乎缺少与Java的WeakReference类直接等价的类,后者支持对单个对象实例的弱引用。 如果我用几个实例变量定义一个对象类,其中一个我想成为弱引用,那么最惯用的方法是什么?实例化一个WeakArray来保存单个引用有意义吗?还是有一种我不知道的更简单的方法?在撰写本文时,使用标准的Squeak映像,没有直接的方法让一个类的一个实例变量变弱,而其他实例变量变强。然而,当前的虚拟机(如)配备了一个类似的概念,如果不是比简单的弱引用更强大的话。

工具栏>&燃气轮机#Dolphin Smalltalk中的commandSource

我想创建一个可重用的工具栏,它可以处理自己的命令。不幸的是,工具栏覆盖了#commandSource,将topShell视为commandSource。我希望将parentView改为commandSource。为此,我创建了Toolbar的一个子类,并提供了自己的方法覆盖。还有别的办法吗?奇怪的是,工具栏在绕过命令链方面是一个异常值

在gst(GNU smalltalk)中使用扩展类?

这是一个后续问题 假设我已经用一个新方法“square”扩展了Integer类。现在我想用它 从文件中调用新方法很容易: Integer extend [ square [ | r | r := self * self. ^r ] ] x := 5 square. x printNl. 在这里,我可以在bash中调用$gst myprogram.st,它将打印25。但是,如果我想从GNU smalltalk应用程序内部使用该方法

Smalltalk 使用Gem工具将ST归档到GemStone服务器

现在我有一个“abc.st”文件,由我在另一个Pharo图像中完成 我找不到任何界面可以帮助我使用gemStone工具将文件导入gemStone服务器 我遗漏了什么吗?使用GemTools将代码传输到GemStone的首选机制是使用Monticello包。如果您不熟悉使用Monticello,请阅读(pdf)。这里描述的基本原理可以应用于法老和宝石 话虽如此,您可以通过执行以下操作在.st文件中归档: 1) I have the GemStone server running. 2) I hav

smalltalk中的新建和初始化-如何传递参数进行初始化

在smalltalk中,当我们通过调用new来创建对象时,调用initialize。我想初始化,但要使用自己的参数(在运行时传递)。我该怎么做呢 e、 g.Myobjcet新 但我如何将参数传递给它,以便将它们传递给初始化。 我正在使用Pharo。如果我记得的话,应该避免重新实现类方法new和initialize 相反,您可以创建自己的类方法(new或initialize除外)来获取参数,并在创建新实例时使用这些参数。例如,在Squeak中,查看class集合的class方法。它首先创建一个集合

VisualWorks Cincom Smalltalk阵列初始化差异

没有错误 |temp| temp := Array new: 5. temp at: 1 put: 10. 出错 初始化数组的两种方法有什么区别?(1 2 3 4 5)是一个不可变数组。 它不能被修改 Array new:10是一个不可变的数组。它可以修改。如其他答案中所述,#(1 2 3 4 5)会导致一个不可变数组,并在尝试写入时引发异常。我想我应该解释一下引入不可变集合概念的基本原理 Smalltalk将源代码编译成CompiledMethod类的实例。CompiledMethod包含字

Pharo Smalltalk定制字体大小、样式和背景

基本上我有两个问题,我正在尝试使用Pharo4.0Smalltalk编写一个简单的GUI。我无法在pharo中更改标签或文本区域/按钮的字体大小/样式。我也无法更改它们的背景颜色和边框宽度。我已经尝试了所有的方法: font1 := (TextFontReference toFont: (StrikeFont familyName: 'Atlanta' size: 22)). TextMorph new contents: ('test' asText add

Smalltalk 如何在图像启动时自动启动茶壶?

我使用茶壶微框架作为RESTAPI服务器。但是,如果我重新启动,VM茶壶不会在映像启动时自动启动 自动启动茶壶的正确方法是什么?您应该看看ZeroConf是如何工作的。您可以添加启动映像时执行的脚本。ZeroConf上的文档位于上,您可以通过两种主要方式将启动脚本添加到Pharo映像: 1) 最简单的方法就是将一个“startup.st”文件放入带有映像的目录中。此文件在加载映像后运行,因此任何配置都可以在那里。例如,茶壶启动可以从那里运行 2) 更高级的方法是使用“Smalltalk addT

Smalltalk Pharo字符串连接而不是流

为什么会出现以下代码: | list types | list := Heap new. types := #('a' 'b' 'c'). types do:[ :t | 1 to:9 do:[ :i | list add:(t, i asString). ]. ]. ^ list 在Pharo中的方法中发出字符串串联而不是流警告? 单击[?]按钮显示: 字符串连接而不是流 在某些迭代消息中使用字符串连接检查代码 我是否正在做一些可以通过流更容易

Smalltalk 如何使用多行输入创建我的游戏?

所以,我有一个方法可以为我的其他创建游戏的方法创建所有的实例变量,我知道如何分别创建它们,但是从一个方法中找到如何创建它们是非常困难的 我需要从字符串中读取数据,其中每一行必须单独处理 我在用法罗 类游戏,所有的东西都在一个游戏类中 游戏:实例变量:“rolcol”。使用实例方法 readFrom: 'Board 3 4 Dice 2 1 1 1 Players 1' board [my actual code that creates a board] row for loop[ T

Smalltalk 安装适用于Pharo 1.3的OmniBrowser脚本?

请不要在这里宣传鹦鹉螺或魅力。我正在使用Pharo1.3(没有迁移到Pharo1.4或2.0的计划)。似乎有很多版本的OmniBrowser。哪一个是最受测试的(在覆盖范围的意义上)或仅仅是无故障的 ……可能更多 我有一些问题要问: 它与Shout正确配合吗 我可以在没有AST和重构引擎的情况下加载它吗 我可以不加修改地加载它吗 它与Squeak的任何版本兼容 是否可以在Cuis中加载 感谢您,Omnibrowser已预装在Pharo 1.3中 如果要在1.3 core中安装,请

Smalltalk 是否可以在没有.changes和.sources文件的情况下部署pharo映像

我已经建立了一个pharo应用程序,我想给我的客户。该应用程序基于seaside,将无头运行。为此,我不需要.source和.changes文件。我想在分发档案中节省一些空间,因此我想跳过这些文件 目前,在我看来,无论怎样,法罗都在抱怨这些文件是否丢失。是否有可能在没有.sources和.changes文件的情况下启动映像?是,它应该可以正常运行。它应该只在GUI中显示一条错误消息,但主线程应该继续运行,因为您正在运行headless(我在-nodisplaybtw方面有了更好的经验),所以您的

smalltalk中的后缀计算

我必须编写一个代码来计算Smalltalk中的后缀符号(反向波兰求值)。我已经阅读了文档,还实现了一个堆栈。这是我迄今为止编写的代码: Object subclass: #Rpcalc instanceVariableNames: 'anArray top' classVariableNames: '' poolDictionaries: '' category: nil ! pop: | item | item := anArray at: top. top := top - 1.

在Smalltalk上检测到无效的utf8输入

我的更改文件已经增加到一个相当大的数额,我需要压缩它,以便继续顺利。(Smalltalk压缩更改)但是当我这样做时,我会收到一个错误“检测到无效的utf8输入”。我该怎么办?我没有找到适当的解决办法 通过谷歌搜索。任何建议都将不胜感激 提前感谢。只是不要使用#压缩更改。正如Uko所说,保存您的代码,获得一个新的图像并将代码加载到那里。除非你正在做一些特别的事情,否则每隔一段时间就有更多的理由使用一个新图像(我每隔几天就使用一个新图像)。这是一个有很多报告的老错误 例如:参见 检查Standard

Smalltalk 如何重写另一个包中类中的现有选择器

我正在使用Pharo5.0。在一些情况下,我在现有的Pharo类(例如DBXTalk/Garage或Regex-Core)中发现了一个限制或可能的bug。我希望能够修改我自己项目之外的类中存在的选择器或选择器集,并将其作为我的包的一部分 我发现了一些关于如何在外部类中创建新选择器并将其移动到我的包中的说明(例如,如本文所示)。那很酷。但在某些情况下,我实际上希望修改外部类中的现有选择器,并在使用该选择器时使该选择器的副本覆盖外部类中的选择器。我不希望修改现有的第三方或Pharo预提供的软件包 在

Smalltalk 在squeak中重写子类方法

我需要为我创建的一个新类创建一个新的子类方法,该类有两个类实例变量:isInterface和behavesLike。 我需要创建一个子类方法来获取这个参数,并使用thos参数创建一个新的子类。 我就是不明白我做错了什么。 这是我的代码: subclass: aSubclassName isInterface: isInterface behavesLike: aCollection instanceVariableNames: instVarNames classVariableName

Smalltalk向班级发送消息?

我注意到在ProfStef的教程中,有时消息被发送到类而不是对象。我知道类也是对象,但是如果我没有首先创建类的实例,类如何查找方法呢?这些方法是在类级别定义的吗?类似于Java的静态方法吗?正如您所指出的,每个类也是一个对象。若你们评估和检查这个物体,你们会看到它。您还可以查找类的类:对象类。它是元类的一个实例,与任何其他行为一样,它有一个方法字典,因此它的实例i。E类对象可以响应消息 在系统浏览器中查看类时,可以在实例方法和类方法之间切换视图。类端的消息可以直接发送给类 Java中的静态方法与

Smalltalk 如何打开具有特定类的类浏览器?

琥珀色Smalltalk版本0.13 在中,我想打开具有特定类的类浏览器 <button onClick="amber.globals.Browser._openOn_(amber.globals.ProcessingClock)">ProcessingClock class 处理时钟类 我收到错误消息琥珀色未定义(请参见下面的屏幕截图) 问题 如何正确打开浏览器 当然它没有定义,琥珀色只是加载器回调函数的局部变量(即参数)。要么记住它并在按钮onclick代码(丑陋)中重

Smalltalk 从发送方上下文获取链的接收方

想象一下,我有这样一种方法 someMethod ^ instVar class getProperty 我能以某种方式实现getProperty方法吗 getProperty thisContext sender ... 获取要向其发送类的对象?我是instVar的值,但不知道它是一个实例变量,在其他一些情况下可能是一个参数或一个文本。我看不到任何明显的东西,instVar不再在执行堆栈上,它已被消息“class”的返回值替换 也许您可以欺骗并检测“class getPrope

Smalltalk 如何创建在Pharo中存储名称的方法?

我正在尝试创建一个方法,该方法存储的名称,然后(可能在另一个方法中)将它们相互附加以生成一个数组。我感兴趣的是数组的大小 为了更好地解释,假设我有三个人在一个小组里,然后我想要一个有固定人数的小组。例如,我需要在下面的代码中定义“addPerson”和“people group”: | People | People := People new. People addPerson: Person John; addPerson: Person Adam; addPers

smalltalk中的二进制搜索 数组扩展[ 数组类>>bin:val左:l右:r[ ^超级b搜索:val左:l右:r ] B搜索:val左:l右:r[ |阿里特| arr:=self。 [l==r] 如果确实如此:[^(-1)]。 国际热核实验堆:=(r+l)/2。 [arr at:iter==val] 如果正确:[^iter]。 [到达:国际热核实验堆

这是我当前的代码,但我得到一个编译错误:“Object:Array new:4”错误:不理解#bin:left:right:”。我想知道我做错了什么 谢谢,第一部分对我来说毫无意义。您的算法是递归的,因此它应该调用自身,而不是委托给类,类是另一个对象 为此,将super替换为self,并使用新参数再次调用相同的方法 Array extend [ Array class >> bin: val left: l right: r [ ^ super binSearch:

如何在visualworks smalltalk中主动更改标签的字符串

我试图在程序运行期间动态更改ApplicationModel中标签的值。 我试过: (self builder labelAt: #Label4) labelString: 'Dynamic text here'. 但得到一个标签串不理解的错误。 当我跑步时: (self builder labelAt:#Label4) 我没有定义对象。这显然表明我没有返回标签对象。试试看 (self builder componentAt: #Label4) widget labelString: 'wh

Smalltalk 如何每小时自动保存一张Pharo图像?

我想每小时自动保存我的Pharo图像 如何在图像中自动执行此操作 我见过码头项目这样做。 但我不知道他们是怎么做到的 TIA周围结冰,仅每小时运行一次: [[self blockUI. self doUpdate. SmalltalkImage current snapshot: true andQuit: false. self unblockUI. (Delay forDuration: (Duration hours: 1)) wait] repeat] fork 有一个

什么';ANSI Smalltalk和Smalltalk-80的区别是什么?

我发现在ANSI Smalltalk规范(草案)中没有提到此上下文 我假设ANSI Smalltalk是标准化的Smalltalk-80,所以我不明白为什么它不存在。它们的区别是什么?Smalltalk-80指的是一个非常具体的东西:施乐Parc在1980年使用的Smalltalk版本。尽管有许多Smalltalk是基于这种环境的,无论是直接意义上的(Squeak和Pharo)还是意识形态意义上的(Ambrai Smalltalk和GNU Smalltalk),但今天没有真正完全遵循书中描述的语

Smalltalk Pharo中是否有一个列表小部件让';用户如何直观地对列表项排序?

Pharo中是否有一个列表小部件,让用户通过拖放直观地对列表项进行排序,以便将新的项目顺序传播到小部件表示的OrderedCollection?据我所知,没有现成的小部件。然而,有些应用程序提供了这样的功能,您可以查看它们的源代码 例如,在OmniBrowser中,可以通过拖放对类类别进行重新排序。重构扩展在obmethodnameditor中包含一个对话框实现,它为方法参数提供了类似的重新排序功能

编译文本流中的局部变量(smalltalk)

我正试图覆盖MyObject中的#new消息。问题是在编译文本时,局部变量disp和oldNew分别更改为t1和t2(我使用的是Squeak 4.3),然后它就不能将oldNew发送到self 我可以改变他们的名字,但我不确定这是个好主意。 以下是我的基本情况: MyObject类methodDict位于:#新put: (对象编译器类新建) 编辑:'新 |显示新旧| oldNew:=MyObject类methodDict at:#new。 disp:=调度程序新建。 ^disp XXXVIEWE

在smalltalk中,一旦renderContenOn:打开,更新页面内容

调用renderContenOn:后,如何更新页面内容?正如在页面已经呈现,但当用户点击提交按钮,我有一个回调,我需要更新相同的页面 谢谢。如果保持在同一个页面上是至关重要的,那么您可能需要使用其中一个JavaScript库,例如jQuery绑定 使用AJAX 如果您下载或安装了Seaside for Pharo或Squeak,您可以找到jQuery示例 就在你的形象里。在http://localhost:8080/javascript/jquery或http://localhost:8080/

Smalltalk 图形ET x轴标签

我在Pharo上的Graph ET中为我的基准绘制了一个条形图。有人吗 知道如何将标签添加到x轴吗?我想在每个栏下写下基准的名称。打开一个工作区,然后键入以下内容: | chart | chart := GETDiagramBuilder new. chart verticalBarDiagram models: ($a to: $z); y: #asInteger; regularAxis; height: 200. chart open. "We u

在smalltalk中何时调用initialize?

我有一个实例变量为“a”的类 当我使用new创建类的新实例时,调用方法的顺序是什么 对象如何知道它应该调用initialize方法 如果我创建一个类方法来为我的实例变量赋值,那么对于我的类方法未调用的其他实例变量,是否仍会调用initialize?initialize通常由新的方法本身调用 我认为标准实施是: new ^self basicNew initialize #basicNew是一个原语,它只创建对象,不进行初始化。basicNew之后,所有实例变量都将为零 请注意,并非在S

Smalltalk 吱吱声文字限制

我现在已经第三次遇到这个问题了,你们中的一些吱吱作响的程序员可能会从屏幕截图中认出最好的: 下面是重现问题的示例代码: d:=Dictionary new. (1 to: 257) do: [:each| d at: each put: each ]. f:=FileStream fileNamed: 'asdf.txt'. d storeOn: f. f reset. d2:=Dictionary readFrom: f. f close. 我知道为什么会发生这种情况(编译器用于反

Smalltalk 更改VM原语时调试VM中的解释器

上下文 作为一个大学项目,我们希望更改pharo vm的使用对象表,看看会发生什么 我们使用和VMMaker。构建虚拟机运行良好 首先,我们添加了一个返回递增整数的原语: InterpreterPrimitives>>primitiveIntegerIncrement "increments an integer" self pushInteger: self popInteger + 1 . 并相应地修改了stackexplorer类>>初始化primitivet

Smalltalk 为什么必须在子类中重新声明池字典?

假设我有一个使用PoolDictionary的类。同时希望使用相同PD的子类必须再次声明它。即使情况并非如此,另一种选择是将PD的范围扩展到整个子层次结构。为什么要这样做?这个“限制”是否有用或有意义?在Pharo中,池字典被传输到子类,所以您可能指的是一个特定的实现?我不知道!非常感谢你的回答。

Smalltalk 如何响应ComposableModel上的焦点更改?(规格)

我试图创建一个DateInputFieldModel(ComposableModel的子类) 它使用文本输入字段模型作为inputField 我设置了inputField autoAccept:true。 我不想使用return/enter来接受 键入时,我正在使用acceptBlock检查输入文本是否可解释为日期。 例如,在我的例子中,一个数字已经可以解释为日期。 当您键入5时,这意味着本年度本月的第5个月 当输入字段失去焦点(制表符或鼠标)时,我希望将日期的最终表示形式呈现到inputFie

Smalltalk 如何检查两个数组是否包含相同的元素?

有没有简单的方法来检查两个数组是否包含相同的元素 如果数组不相同,则返回true,下面是我的尝试: arr1 := #(1 3 5 6). arr2 := #(1 2 3 4). arr2Copy := arr2 copyFrom: 1 to: arr2 size. arr1 size ~= arr2 size ifTrue: [^ true]. arr1 do: [:a | (arr2copy removeFirst = a) ifFalse: [^ true]

如何从一个吱吱作响的Smalltalk图像中转储所有源代码?

我已经下载了Scratch,它是用英文写的。我可以在Squeak中浏览源代码,但我真正想要的是一个大文本文件。该图像基于Squeak 2.8 我是个十足的新手。到目前为止,我很喜欢它,我对语言和环境的印象是,如果我更了解自己的方式,将此图像中的所有源代码转储到一个文件中可能只需要大约3行代码。你能提供3行代码吗 如果结果是4行(或者更可能是1行),我不会抱怨。未测试,但是: Smalltalk allClasses do: [:each | each fileOut] 这将转储三百万个.st文

Squeak smalltalk:为什么我不能激活do it菜单

我下载了squeak 4.2并观看了这个非常基础的教程 当我在“工作区”窗口中键入2+2并右键单击该行时,我无法使用“执行”选项获得任何弹出菜单 我错过什么了吗 根据您的平台和配置,可通过右键单击或中键单击激活该菜单。对于Windows上的Squeak,我认为默认设置是单击鼠标中键 如果默认设置不直观,可以反转鼠标右键和中键 要反转当前图像的鼠标按钮,请执行以下操作: 点击世界背景 选择打开。。。从世界菜单 选择首选项浏览器 在首选项中搜索鼠标 切换开关按钮 要反转Windows VM上的鼠标

Smalltalk WebNonHTMLResource中的回车

我创建以下Web元素: WebNonHTMLResource forText: ('This is', Character cr asString, 'a test') 但是,在浏览器中显示时,文本将如下所示: 这是一个测试 未考虑回车。如果将回车放入HTML,它将不会显示为换行符。您需要添加分页符标记: 'This is<br>a test' “这是一个测试” 如果您将cariage报税表放入HTML,它将不会显示为换行符。您需要添加分页符标记: 'This is<br&

Smalltalk 如何将整数打印到成绩单

我试过这个密码 |myNum| myNum := SmallInteger new: 0. Transcript show: (myNum printString). ,但Pharo在运行此代码时崩溃。您不能使用new:创建SmallInteger。您已经有了要打印的号码。它已经是一个小整数了。就像这样使用它: Transcript show: 0 printString “SmallInteger新建:0”不是必需的,因为0已经是SmallInteger 此外,Transcript对象的#

Smalltalk 刷新蒙德里安视图

我试图在Pharo3.0中使用Mondrian实现一些可视化 我的主要问题是,我没有找到一种动态更新Mondrian视图的方法:我能够删除节点 view removeAllEdgesTo: node; removeNode: node. 但我无法添加节点、更改布局等等。我可以更改节点和边,但视图似乎没有刷新 我想做的另一件事是:我让用户动态选择节点子集和颜色,我希望能够更改这些节点的颜色 有没有一种方法可以在内置交互之外与蒙德里安视图交互

Smalltalk-是否有类似于&&;从C?

我必须编写一个纯对象Smalltalk程序,在该程序中,我需要评估条件,直到其中一个失败。我知道在C语言中,我们可以使用&&操作符来实现这一点,并且只有在必要时才会对条件进行求值 Smalltalk中有类似的东西吗?如果我理解你的问题,你在寻找这样的东西: []而实际情况为:[] #whileTrue:当然不是一个关键词,你可以自己实现它(看看你选择的Smalltalk中的实现,并受到启发:) 如果您不需要循环,而只是在寻找一种表达条件的方法,那么\ifFalse:,\ifFalse:,\ifF

Smalltalk 在Pharo 5无头模式下调试

我正在无头模式下运行pharo 5(seaside),带有RFB: ./pharo-vm display null-vm sound null/app/pharo5/pharo5.0.image--否退出 本地运行良好(Ubuntu14和XFCE) 在DigitalOcean(不带GUI的Ubuntu14)中,它一直工作到调试器被激活:然后关闭。 我可以通过VNC连接,没有问题,但是当我执行一个暂停或错误时,它会触发调试器,它会离开。。。问题的一些线索?这听起来像是远程调试可能是一种合理的方法。

Smalltalk奇怪的打印错误

为了“填充”我正在打印的数字,使其始终为固定数量的字符,我根据给定数字中的整数数量生成填充字符串: pad := ' '. (freqVal < 10) ifTrue: [ pad := ' ' ]. ((freqVal < 100) & (freqVal > 9)) ifTrue: [ pad := ' ' ]. ((freqVal < 1000) & (freqVal > 99)) ifTrue: [ pad := ' ' ]. st

  1    2   3   4   5   6  ... 下一页 最后一页 共 22 页