Smalltalk 使用点'';闲聊
Smalltalk中Smalltalk 使用点'';闲聊,smalltalk,pharo,Smalltalk,Pharo,Smalltalk中的用法是什么?根据我的理解,它是不同语句的分隔符,但如果语句位于末尾,则可以省略。正确吗?这个是一个类似的语句分隔符(通常用于行尾)。动机(原因)是英语中的普通句子以结尾 必须/可以省略的地方有: 变量定义 评论 一个语句块或块上的最后一个语句 在方法末尾 定义#选择器或#选择器:消息 Smalltalk/X-jv的一个示例方法: selectorAsRegistryName: aSelector "Splits selector into string words
的用法是什么?根据我的理解,它是不同语句的分隔符,但如果语句位于末尾,则可以省略。正确吗?这个
是一个类似的语句分隔符(通常用于行尾)。动机(原因)是英语中的普通句子以
结尾
必须/可以省略的地方有:
变量定义
评论
一个语句块或块上的最后一个语句
在方法末尾
定义#选择器
或#选择器:消息
Smalltalk/X-jv的一个示例方法:
selectorAsRegistryName: aSelector
"Splits selector into string words with spaces.
For example: itemName becomes 'Item Name'"
| registryName selectorCollection |
registryName := String new.
selectorCollection := aSelector asCollectionOfSubCollectionsSeparatedByAnyForWhich:[:ch | ch isUppercase ] withSeparatorsIncluded:true.
selectorCollection at: 1 put: selectorCollection copy first asUppercaseFirst. "/ first string must be uppercase too
selectorCollection do: [ :eachString |
registryName := registryName isEmpty ifTrue: [ eachString ]
ifFalse: [ registryName, Character space, eachString ]
].
^ registryName
我不想把它与现实相比较;在C中,因为在C中它是一个语句终止符——不能省略;在C中的最后一个语句之后,但在Pascal/Delphi中,可以省略;在最后。@JayK-true。Pascal更接近于
逻辑。我将编辑答案,感谢您改进了答案。来自C++/Python/JavaScript,我发现很难记住何时放置
,何时不放置。专门针对您的5。选择器名称或消息
,能否详细说明?另外,是否有一个工具可以通知(或帮助)您检查语法?谢谢。@laike9m:a选择器selectorRegistryname:
此处的消息a选择器
(其他语言中的方法名称及其参数)。我会开始把
放在它应该放的地方。您不需要特殊的工具-当您接受代码时,您的代码将被检查是否正确。(在您可以使用代码的工作区中(选择它并执行它)
),不正确时会出现错误)。谢谢tukan。实际上,我知道选择器和消息是什么,但我不太明白您所说的,
在这种情况下可以省略。例如,在代码段中,String new.
有点,不能省略。