Smalltalk Metacello中的#includes:指令是什么?
我不明白下面的摘录。更准确地说,Smalltalk Metacello中的#includes:指令是什么?,smalltalk,pharo,metacello,Smalltalk,Pharo,Metacello,我不明白下面的摘录。更准确地说,#包含的内容:指令并不清楚,因为它看起来与#要求的内容完全相反: spec for: #'pharo3.x' do: [ spec package: 'Grease-Core' with: [ spec includes: #('Grease-Pharo30-Core' ). ]; package: 'Grease-Tests-Core' with: [ spec inclu
#包含的内容:
指令并不清楚,因为它看起来与#要求的内容完全相反:
spec for: #'pharo3.x' do: [
spec
package: 'Grease-Core' with: [
spec includes: #('Grease-Pharo30-Core' ). ];
package: 'Grease-Tests-Core' with: [
spec includes: #('Grease-Tests-Pharo20-Core' ). ];
package: 'Grease-Pharo30-Core' with: [
spec requires: #('Grease-Core' ). ];
package: 'Grease-Tests-Pharo20-Core' with: [
spec requires: #('Grease-Tests-Core' ) ] ].
它与需求相反,但它做得更多。如果
A需要:B
并且B包括:A
,
然后加载B
会产生效果,即A
也会在加载B
之后加载(因为需要)
我和戴尔讨论过这种行为。最后,这是一个命名问题。在debian世界中,您可以使用类似于#provides:
(它不存在),您可以编写
A provides: B
但是,仍然A需要:B
这一事实不会反映在这里
TL;博士
当A包含:B
时,加载A
也会加载B
,从您的解释中,我得到包含的内容:
没有,但它与要求的区别:
。因此,A需要:B
说:“如果加载A
,您以前必须加载B
”但是A包括:B
表示“如果要加载A
,还必须加载B
”