Smalltalk 在Glamour浏览器中使边缘在漫游可视化中不可单击

我在Pharo 2.0的Glamour浏览器中使用Roassal绘制了一个动态调用图 默认情况下,不仅可以单击节点,还可以单击边 由于我没有更多的信息显示的边缘,我希望他们不可点击。如何删除“可点击性” 这就是我在Glamour浏览器中绘制调用图的方式: methodsUnderTestAsCallGraphIn: constructor constructor roassal painting: [ :view :testFailure |

Smalltalk WACounter显示,但不显示';t增加/减少

我刚接触smalltalk/pharo/seaside,使用简单的WACounter时遇到麻烦。 我创建了一个组件并添加了以下内容: wa := WACounter new. html render: wa. 计数器显示在my localhost中,但不会在单击时增加/减少。这一定很傻,但我找不到发生了什么事。 谢谢您应该将计数器设置为实例变量,例如 counter ^ counter 及 然后,您的孩子也应该回答这个问题: children ^ Array with: se

Smalltalk 如何在Pharo中创建MC包

如何在Pharo(3.0版)上添加MC包 通过单击进入空世界打开“世界”菜单 选择Monticello浏览器 单击左上角的+软件包 输入要设置版本的软件包的名称(必须与用于放置软件包的软件包名称相同) 关于包裹名称的说明 -充当子包分隔符,即您可以有多个具有相同前缀的Monticello包,例如MyPackage Core Model、MyPackage Core View和MyPackage Tests。如果您创建一个名为MyPackage的Monticello软件包,它将包括所有子软件包(即

如何在Pharo Smalltalk中测试关联数组和对象(实例)之间的相等性?

我有一小段代码,它似乎不起作用,测试对象是否相同 something := ((selectedTab value) == registerObject). 或: ((selectedTab value) == registerObject) ifTrue: [ "this never get's executed" ] 我已经在两个实例上“探索指针”了“selected value”与“registerObject”具有完全相同的id,我甚至在括号中添加了引导 有人能告诉我这个问题吗?

您可以在Smalltalk中扩展按钮类和其他GUI元素吗?

我读过很多关于建筑的书,引用了Smalltalk语言的例子。我不了解Smalltalk gui(按钮,文本字段)。在Smalltalk中,您可以扩展Button类和其他gui吗?大多数(所有?)Smalltalk方言让您可以直接访问环境本身的源代码,这意味着您可以随意更改、破坏和扩展它。这适用于大多数事情……GUI、集合、语言解析器、交换true和false的值,以及更多 这给了您巨大的力量,但如果您正在更改核心组件(例如语言解析器),您当然必须格外小心-这是一个动态系统,系统的任何更改通常都会

在Smalltalk中如何将整数与浮点值相乘

几天前我正在学习Smalltalk,我正在做一个项目,基本上是为Circle类找到面积和周长,这个类是从Shape类实现的。换句话说,形状是圆的一个超级类 当我运行我的代码时,我得到一个错误,它是“numeric primitive expected numeric argument,get”。我认为发生错误是因为我将整数与浮点值相乘。我不知道如何修复错误,所以如果有人能给我一些建议 另外,我正在使用usmalltalk,这是Smalltalk的一个特定版本,但它具有相同的功能 (class S

Smalltalk中的异步GUI更新

我想知道是否有人能帮助我解决Smalltalk中的以下问题。特别是Cincoms Visualworks 我想编写一个简单的GUI,它有三个字段,并按如下方式处理它们: 第一个字段输入一个数字(5) 第二个字段仅显示第一个字段的两倍(因此在本例中显示10) 现在,有趣的是。。。第三个字段显示一个完全不同的类的值(我们称之为X类)。然而,每当X类中的值发生变化时,该值必须显示在GUI上——它不能等待更新按钮的按键。类X中的值可以来源于(比如)工作区 我想我可以通过方面适配器来实现这一点,但我似乎无

Smalltalk中new和initialize的区别?

一个新手问题,new和initialize之间有什么区别?使用new创建一个新对象,而initialize方法在创建新对象时执行,并初始化对象。。发送消息“new”时,它不仅创建对象,而且发送消息“initialize”。这使您可以自定义对象的初始化。看: Behavior >> new "Answer a new initialized instance of the receiver (which is a class) with no indexable variables.

Smalltalk 模拟键控事件

如何模拟在执行其他代码时按住某个键(ctrl)?以下方法的实现是什么 self ctrlDownWhile: [self doSomething] 您可以尝试通过更改输入状态的“ctrlDown”状态来“欺骗”输入状态。 坏消息是它没有setter方法来访问它(可能仅在我的版本中),因此您可能需要使用以下技巧: ctrlDownWhile:aBlock "aBlock will see ctrlDown as true" |indexOfCtrlState| indexOfCt

Smalltalk WAFileMetadataLibrary可能存在的问题

我在使用WAFileMetadataLibrary时发现了一个可能的问题 addFileAt: aPath relativeToRootDirectory: relativeRootDirectory. 我遇到的问题是一些带有(../img/someImage.png)的css被指向 http://localhost:8080/files/img/someImage.png 而不是 http://localhost:8080/files/MyWAFileMetadataLibrary/img/

Smalltalk Windows 8中的Cincom VIsualWorks 7.9.1中缺少源代码

我正在Windows 8中运行Cincom VisualWorks 7.9.1版。当我打开类浏览器并查看库类时,它无法显示源,而是显示如下错误注释: " ***This is decompiled code.*** This may reflect a problem with the configuration of your image and its sources and changes files. Please refer to the documen

Smalltalk Squeak(或pharo)更改windows默认的白色背景色

如何更改Squeak或Pharo中默认的白色窗口背景色?我不熟悉smalltalk和Morphic,我查看了Morphic类,但没有找到正确的实例变量。谢谢。我想这个问题可能更接近你的需要 看起来您可能必须使用平铺窗口管理器 您需要这样做: | morph | SystemWindow new addMorph: (morph := Morph new) fullFrame: LayoutFrame identity; openInWorld. morph color: C

SmallTalk-使用转录本打印OrderedCollection对象的内容

在Pharo中运行以下代码时,我收到了以下消息: 消息未理解:OrderedCollection>>转录本 当用“oc”替换“self”时,我仍然得到相同的错误。我正在寻找一种方法来输出收集使用成绩单 为什么成绩单不能接收我的代码?记住对象消息:参数语法:您试图将成绩单消息发送到oc对象,然后使用self参数将show:消息发送到该对象返回的对象 您真正想做的是让转录本对象显示:您的oc对象。这样做:发送Transcriptshow:消息,并将oc作为参数:Transcript show:oc。

如何以smalltalk字节方式读取文件?

我在Smalltalk中找到了关于逐行读取文件的文档,但我需要逐字阅读。我们如何在Smalltalk中做到这一点?如果您能识别Smalltalk的方言(Squeak、Pharo、VisualWorks、VA、GemStone等),这将很有帮助。在任何情况下,无论您发现哪个类有#“nextLine”方法,都应该有一个回答单个字符的#“next”方法。@Dan最近有另一个关于位访问和位操作的问题。请使用搜索来查找它。如果答案不够,请提出新问题。

如何使用文本文件作为输入,输入smalltalk的交互式输入并将输出重定向到文件

我正在努力找出是否有一种方法可以提供输入 到gst a.st b.st的交互命令- 并重定向输出。通常,交互缓冲区将 拥有st>…并且当您键入命令时,它将通过调用 将默认/覆盖displayString方法添加到交互式输出。如何获得输入 并使用linux命令或一个小型smalltalk测试脚本来输入输出。 谢谢。这是一个精心设计的演示程序。它从标准输入读取字符串,直到EOF,对其进行排序,然后打印出来: input := stdin nextLine. c := OrderedCollectio

Smalltalk 如何摆脱VW 3.1d和ENVY中的非托管代码

我有一个旧的VW3/ENVY图像,其中一个包作为非托管代码加载(正是这种情况所警告的)。不幸的是,这个问题发生在很久以前,现在在不加载包裹的情况下“返回”图像已经太晚了 显然,有一种方法可以解决这个问题(我们有一个开发映像已经解决了这个问题,并且有一些普通的配置映射包含与非托管包完全相同的代码,但它们无法加载),但确切的方法早已被遗忘(将特定的dev映像作为新运行时映像的基础存在一些问题,因此我需要了解如何再次执行该操作) 理论上,应该可以从配置映射中删除包并重新加载代码。在实践中,所有常规方法

Smalltalk SqueakSource添加一个资源文件

我对squeak/squeak source是新手,我正在写一个小游戏作为学习练习。我有一些用于我的一些精灵(主要是PNG)的图形,但我不知道如何将它们添加到我的squeak源代码库中 有没有一种方法可以将这些文件添加到我的项目中,这样我的团队就不必一直通过电子邮件互相发送图像 谢谢 ==最终解决方案=== 根据Lukas的建议,我最终创建了一个只包含生成图像的方法的类。不幸的是,实际上编写这些方法是一种痛苦(尤其是对于大型图像) 因此,我在类上创建了一个helper方法,允许您动态添加图像消息

Smalltalk 《海边》与《艾达》与《伊利亚特》的主要区别是什么

三个Smalltalk web应用程序框架之间有什么区别 一些出发点: 每个框架的最佳点是什么?在哪种情况下,您会使用其中一种 他们的弱点是什么 哪一个有最干净的URL 他们如何处理Ajax 他们对持久性的使用有偏好吗 我只是想确定哪种框架适合每种应用程序。我只能回答Seaside: Target:Seaside以复杂的web应用程序为目标,重点关注可重用性和开发效率。有自动会话状态管理和后退按钮支持。这两本免费的在线书籍并提供文档 缺点:对于RESTful URL,您必须做一些额外的工作

Smalltalks中ifEmpty:ifNotEmpty:、ifNil:ifNotNil:和相关消息的状态?

像ifEmpty:ifNotEmpty:、ifEmpty:、ifNotEmpty:ifNil:ifNotNil:、ifNil:和ifNotNil:这样的消息的当前状态是什么 它们在Smalltalks中可用吗?它们的行为是否一致?在旧代码中仍然可以看到“object isEmpty ifTrue:[…]ifFalse:[…]”之类的内容。目前,我认为以下代码很好地涵盖了最新技术: 便携性 [……] 不要使用这些方法中的任何一种,它们在某些平台上丢失、损坏或具有不同的语义: [……] 对象:\i

Smalltalk 是运行时方法

在Pharo Smalltalk中,有没有办法判断当前映像是运行时映像还是开发映像?我想创建一种方法来发出关闭运行时映像而不是开发映像的信号 Smalltalk映像中没有“运行时”与“开发”这样的内在区别。但是,由于这是一个实时环境,您可以按照自己的意愿来表示,例如通过单例。比如: SessionType class>>uniqueInstance ^ uniqueInstance ifNil: [ uniqueInstance := self new ] SessionTyp

Smalltalk复杂语法

在一个考试示例中,他们询问语句是否有效,如果有效,返回的内容: 对象类超类 我一个人无法理解那么多信息。求求你,救命 假设Object是类型系统的根,您只需仔细遵循以下规则: 每个普通类X都是其元类X类的实例 每个元类X类都是普通类元类的实例 元类继承图遵循常规对象继承图,除了根对象继承自nil,其元类继承自Class 因此,这将是: | Expression | Type | |-------------------------

在smalltalk中重构方法

我是Smalltalk(Squeak)的新用户(实际上是在课程中学习)。 我有一个方法来检查一个矩形是否等于一个给定的矩形,如下所示: isEqual:givenRec self a = givenRec a ifTrue: [ self b = givenRec b ifTrue: [ ^true ]. ^false ]. self b = givenRec a if

当前的Smalltalk发展活动

我现在开始了几个月的Smalltalk学习之旅。我从一开始就知道Smalltalk有几种“方言”(也许“方言”不是最好的词),但我指的是视觉作品、Squeak和Dolphin,仅举三种。到目前为止,我的尝试仅限于视觉作品和吱吱声。但我现在发现,Squeak似乎正在蜕变(双关语的意思!)为其他几种变体,例如Tweak、Pharo、Cobalt和Croquet 谁能解释一下: a) 为什么会出现这些举措(调整、法罗、槌球和钴)? b) 我应该花点时间跟上进度吗?记住我是个闲聊新手? c) 为什么这样

Smalltalk返回优先级

我想澄清一下退货的优先顺序 语句,它似乎违背了一般的优先顺序 规则 例如表达式 ^ 2 + 3. 返回5(这是我想要的),但它不应该只返回2吗 哪个^1的优先级高于二进制+的优先级?Smalltalk的^1真的是一个运算符吗?我想这是一个相当保守的象征。当周围的方法返回时,“悬空”+3会发生什么情况?我认为这个行为是正确的,因为return语句是“正常”Smalltalk方法中发生的最后一个语句 返回符号^是为数不多的语言内置结构之一。Smalltalk将返回^symbol后面表达式的值。S

Smalltalk初学者的应用程序构建

我是Smalltalk技术的新手。我的编程经验是用C和C++编写的。我想了解smalltalk的设计方法。有谁能推荐一些在smalltalk中开发的简单实时应用程序来帮助像我这样的初学者探索smalltalk的途径吗。 目前,我正在Pharo上试验我的smalltalk学习。我猜Pharo现在被最广泛地用于构建web应用程序和作为研究平台。查看,了解如何使用Pharo构建web应用程序。下载Seaside的一键式图片,看看里面的寿司店 如果您打算构建更传统的GUI应用程序,这是可能的。但它正变得

Smalltalk字符串中的转义HTML标记

我正在拼命尝试在Smalltalk中编写一个非常基本的方法来逃避HTML标记(“”) 到目前为止,我的想法是: escapeHtml: str |tags newString tmpString| newString := String new. tags := Dictionary new. tags at: '<' put: '&lt;'. tags at: '>' put: '&gt;'. tags keysAnd

Seaside/Smalltalk-如何突出显示表格中的一行?

当前是否有方法高亮显示表中的行?例如,我想列出一个条目表,并能够突出显示一行,然后单击“处理”。我在网上找不到任何这样的例子——我相信有办法,对吧 高亮显示行可以基于单选按钮来完成-用户为要更新的行选择单选按钮,然后单击处理或他们想要的任何按钮,然后将对该行执行该操作 任何关于我应该看的地方的帮助(或者只是一个简单的例子)都将不胜感激 如果要使用单选按钮,请尝试在其上添加jQuery操作 比如: onClick: ((html jQuery: #tableRowId) toggleClass:

Smalltalk “错误”;找不到EOCD位置“;从Monticello加载项目时

我在Windows pc中设置了Monticello HTTP存储库。在pharo 2.0中将我的项目发布到Mac上的存储库之后。后来,我尝试在windows中的另一个2.0映像上加载该项目,发现了此错误。找不到EOCD位置。但我可以在mac中的另一个映像中加载该项目 有人知道缺少什么吗?我的Pharo映像创建的.mcz文件格式不正确。在重试整个过程后,我成功地发布到HTTP存储库,然后能够从windows和mac加载

Smalltalk 北欧字符集的显示,如ø;(o/)AIDA 6.0,Dolphin Proff 6.03

当AIDA向我的FireFox或chrome浏览器发送包含丹麦字符的文本字符串时,它们显示为�. 我试过: (AIDASite命名为:'PIYHsite')默认语言:'DA' 并在站点中控制站点设置,其内容为:defaultLanguage='DA',未成功 有没有关于我忽略了什么的提示? 提前谢谢 索伦 增编。AIDA使用UTF8编码,在查看源代码后,我可以看到defaultLanguage='DA'的设置实际上是为不同的语言选择不同的sourcedokuments。因此,它不会改变人们看到的

从创建线条变形100@100在smalltalk中设置鼠标位置

我被一件简单的事情困住了,我不能理解请帮我解决我真的被困住了 我需要创建一个动态变化的linemorp 从点开始100@100至鼠标位置 如何实现它?您应该创建自己的morph子类来处理鼠标事件。或者您可以使用现成的手柄: | line handle | line := (LineMorph from: 100@100 to: 100@100 color: Color red width: 2) openInWorld. handle := HandleMorph new forEachPoin

&引用;“类”;在Smalltalk中发送给超类的消息 让我们考虑以下类: Object subclass: Sup []. Sup subclass: Sub [ print_superclass [ super class printOn: stdout. ] ].

当我尝试在Sub上运行print\u超类方法时,我得到 > Sub new print_superclass. Sub 我希望在这里得到Sup,因为class调用被移回Sub的超类,即Sup。为什么会这样呢?因为super是一个指向消息接收者的伪变量。 Super和self指向同一个对象并具有相同的标识 super == self ---> true 它们之间的区别在于super告诉消息查找开始搜索方法字典“上面”中包含该方法的下一个 定义令人困惑,但在本例中,super仅表示对

Smalltalk 在Visual Works图像中创建常量字符**

我应该如何创建(const char**)以将其传递给C函数 假设我的常量字符**被命名为提示符,那么: user := 'User:' copyToHeap: #malloc:. pwd := 'Password:' copyToHeap: #malloc:. prompts := (ByteArray new: 64) copyToHeap: #malloc:. prompts copyAt: 0 from: (user referentAddress asByteArraySize

Smalltalk Lively内核人员是否提供对其最新版本的匿名/只读SVN访问?

我一直在试图在git上找到lively内核的副本,但它似乎在git上不可用。LK的源代码在任何其他公共访问SVN上都可用吗?他们已将其发布在lively kernel.org/development上。尝试一下svncolk\u trunk在Lively内核中的开发与传统的Web开发有很大的不同,因为所有的开发都是在wiki中在线进行的(http://lively-kernel.org/webwerkstatt). 这个wiki是基于SVN的,可以签出,但通常不需要这样做 请注意,位于的存储库不

Smalltalk 在集合中的元素之前丢弃元素的最佳方法

考虑到像“Lorem ipsum dolor sit amet,Concertetuer Adipising Elite”这样的字串,我想在坐下之前把每个字都扔掉。我已经检查了字符串中的方法,但没有发现对这个方法非常有用。这是我的尝试: | phrase newPhrase | phrase := 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit'. newPhrase := phrase substrings. phrase s

Smalltalk-获取字符串的值

我试图找到字符串的值。例如: 'abc' == 6 (1+2+3) 但是我在下面的“+元素”部分得到一个错误: MessageNotUnderstood: Character>>adaptToNumber:andSend: 有人能帮我一下吗 wordValue: inString |value| inString asUppercase. value := (inString do: [ :ch | inString inject: (ch ascii

printFormat的Smalltalk用法:方法

有人能给我举个例子,说明如何在Smalltalk中使用printFormat:方法格式化字符串吗 例如: “123456789”printFormat:a格式应返回类似$123456789.00的值。在smalltalk中查找方法用法示例的正常方法是选择它,然后搜索发件人。大多数Smalltalk(大众、Squeak、Pharo、Dolphin、Amber等)都有一个键盘快捷键 如果这个数字太大,您可能想看看实现者 Smalltalk通常没有什么帮助文本和注释,但有很多使用特定构造的真实代码 我

Pharo Smalltalk-在Seaside开发期间,有没有一种方法可以强制解除对象(实例)上的释放(解除锁定)(终止会话等)?

当您想对某个实例进行垃圾收集时,可以发送什么消息 我正在开发一个基于Seaside的应用程序,很多事情都会失控,包括我的RootComponent有10个实例(这正常吗),我想要一个新的开始(不是新的图像) 稍后编辑:读了一点之后,显然这个问题在自动垃圾收集的世界里是一个令人讨厌的问题,所以让我重新措辞。没有办法让VM垃圾收集成为一个特定的对象。您可以计算Smalltalk garbageCollect.以强制垃圾收集,但这只会触发VM对所有对象的垃圾收集机制 根据我的经验,这里通常有两个问题:

Smalltalk 如何将窗口复制到剪贴板?

什么是将调试窗口复制到剪贴板的方便方法,这样我就可以将它粘贴到某个流行的编程QA站点上;) 在Pharo中,一个方便的方法是带上光环并单击“菜单光环”(红色图标),然后导出->PNG、JPEG等 要使光晕(在窗口中)出现,请按住Alt+Shift键并单击。如果光晕出现在窗口内部的变形中,请再次单击,直到到达外部窗口

修改Smalltalk图像

我有一个第三方程序,它是用“Visual Smalltalk 3.1.0 Enterprise”编写的,它是在exe中的“.image”资源中编写的 我的问题是如何从这个资源开始修改这个程序的一些小东西?exe文件的.image部分包含一个“Smalltalk image”。这不是您直接更改的内容,而是由Smalltalk开发环境生成的。该映像包含代码(以IL形式)和“保存到磁盘的活动对象” exe文件“只是一个加载器”,它启动虚拟机,将图像加载到内存中,然后启动应用程序。如果您有源代码,您可以

findTokens:在Pharo和Dolphin Smalltalk中

我想在Pharo 4中拆分一个字符串。我的意见是 'a %% b %% c %%% d %% e %% f' 我想得到 #('a %% b %% c' 'd %% e %% f') 因此,分隔符为“%%” 在它的工作很好: 'a %% b %% c %%% d %% e %% f' subStrings: ' %%% ' #('a %% b %% c' 'd %% e %% f') 但在这方面,我们似乎已被打破: 'a %% b %% c %%% d %% e %% f' subStri

Smalltalk PetitPasser:如何匹配令牌集

在PetitPasser2中,如何匹配一组封闭的标记,如月份名称?例如(在伪代码中) [:word | MonthNames anysuccess:[:mn | mn beginsWith:word]]aspasser. PPPredicateSequenceParser似乎是一种可能性,但您似乎必须事先知道字符串大小。我想我可以这样做: | monthRules | monthRules := Array streamContents: [ :unamused: | M

Smalltalk 如何清除Pharo中凌乱的工作区?

在中,提出了一个挑战(第2.15.2节),其中包括获取电子邮件地址并获取相关的gravatar图像作为变形对象。通过在操场上运行以下代码,我能够做到这一点: | url email | email := 'stephane.ducasse@inria.fr'. url := 'http://www.gravatar.com/avatar/', (MD5 hashMessage: email) hex asString , '.jpg'. (ZnEasy getJpeg: url) asMorph

Smalltalk 从哪里开始学习海边的内部结构?

我最近非常喜欢Seaside web框架。我想开始挖掘源代码,找出它是如何工作的。不幸的是,有很多课程,我不知道从哪里开始!有人知道我应该先了解哪些课程吗?我假设某个地方有一个路由类,我应该从它开始…我假设你读过海边的书 如果您想更深入地了解,只需查看源代码,从类WAComponent和WARenderCanvas+WAHtmlCanvas开始。路由类是WAAdmin,意思是“这是注册不同海滨应用程序的地方”。有几个部分很有趣。从WARenderCanvas开始,了解生成html的dsl是如何

Smalltalk 如何在Pharo中打开已编译方法集合的浏览器

我在数组中收集了一些已编译的方法,现在想在浏览器中手动查看它们。不知何故,我在《法罗》的“反思”一章中无法通过示例找到解决方案 如何在Pharo(1.4)中的已编译方法集合上打开浏览器?或:系统导航默认浏览器消息传递者:(methodsCollection Collection:#methodReference)名称:“我的方法”顺便说一句,我很惊讶我不能只做:SystemNavigation default browseMessageList:methodsCollection名称:“我的方法

Smalltalk PetitParser解析规则如何发出错误信号?

我想要一个只识别0到32767之间的数字的解析规则。我试过这样的方法: integerConstant ^ (#digit asParser min: 1 max: 5) flatten ==> [ :string | | value | value := string asNumber. (value between: 0 and: 32767) ifTrue: [ value ]

Smalltalk ReferenceStream在新实例变量方面存在问题?

在Pharo Smalltalk中,我使用ReferenceStream序列化对象列表--下面是我序列化的对象的类定义: Object subclass: #Task instanceVariableNames: 'title notes list project dateNextAction dateCreated dateCompleted importance selected' classVariableNames: 'Database' poolDictionaries: '' cat

Pharo Smalltalk中的调整点

我对Smalltalk不熟悉,所以请容忍我。我只是想用变形画一幅简单的画 现在我可以创建圆和线,但是我在调整工作区中的起点和终点时遇到了问题 如果你能提供任何建议,我将不胜感激 man := Morph new. head := CircleMorph new color: Color blue. body := LineMorph new. man addMorph: head. man addMorph: body. man openInWindow. verticesAt:put:允许

在GNU Smalltalk中定义和调用函数的正确方法是什么?

我现在正试着自学Smalltalk,但我仍然不知道如何调用我编写的函数。我试图用参数'Derpy'调用函数printSomething,使用语句printSomething:'Derpy.,但它没有调用函数,而是产生了以下错误:prog.st:3:预期表达式 我在这里做错了什么?在Smalltalk中使用参数调用函数的正确方法是什么?到目前为止,我读过的教程都没有回答我的问题,我仍然有点困惑。您是在哪个类中定义这个方法的?您没有指定要将消息发送到哪个类(告诉它执行该方法) 在Transcript

Smalltalk 方法,该方法接受一个块,该块接受一个参数

如何将块及其参数发送给方法?因此,方法接收块,块接收参数,我在方法iteslf中运行块…例如,请查看OrderedCollection的sort:方法(您将在SortedCollection>>mergeFirst:middle:last:into:by:中找到最后计算的块)。 在接受块作为参数的方法中,您将计算块,这意味着使用参数调用它并使用结果。不要试图“访问块的参数” 例如,您可以向颜色集合发送带有块作为参数的消息,以按亮度对其进行排序: colors := OrderedCollecti

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