假设您有两个类,LuckyClass1一个是 的子类Object,一个是 的子LuckyClass2类LuckyClass1。假设你的名字是LuckyName。假设您想将代码放入包Lucky-Package1中。
Object subclass: #LuckyClass1
LuckyClass1 subclass: #LuckyClass2
LuckyClass1具有实例端方法、类luckyInstanceSideMethod1端方法luckyClassSideMethod1和实例端变量luckyInstanceSideVariable1和类端变量的类LuckyClassSideVariable1。
类似地,类LuckyClass2具有实例端方法luckyInstanceSideMethod1、类端方法luckyClassSideMethod1和附加的实例端变量luckyInstanceSideVariable2和类端变量LuckyClassSideVariable2。
方法引用看起来像这样
LuckyClass1>>#luckyInstanceSideMethod1
LuckyClass1 class>>#luckyClassSideMethod1
LuckyClass2>>#luckyInstanceSideMethod1
LuckyClass2 class>>#luckyClassSideMethod1
在 Linux/Mac OS X 上,执行
vi Lucky-Package1-unix.st
放入一个名为的Lucky-Package1-unix.st
文件
Object subclass: #LuckyClass1
instanceVariableNames: 'luckyInstanceSideVariable1'
classVariableNames: 'LuckyClassSideVariable1'
poolDictionaries: ''
category: 'Lucky-Package1'!
!LuckyClass1 methodsFor: 'lucky instance side protocol 1' stamp: 'LuckyName 6/8/2016 17:05'!
luckyInstanceSideMethod1
^ luckyInstanceSideVariable1 := 'lucky instance side'
! !
!LuckyClass1 class methodsFor: 'lucky class side protocol 1' stamp: 'LuckyName 6/8/2016 17:06'!
luckyClassSideMethod1
^ LuckyClassSideVariable1 := 'lucky class side'
! !
LuckyClass1 subclass: #LuckyClass2
instanceVariableNames: 'luckyInstanceSideVariable2'
classVariableNames: 'LuckyClassSideVariable2'
poolDictionaries: ''
category: 'Lucky-Package1'!
!LuckyClass2 methodsFor: 'lucky instance side protocol 1' stamp: 'LuckyName 6/8/2016 17:15'!
luckyInstanceSideMethod1
^ super luckyInstanceSideMethod1, ' subclass'
! !
!LuckyClass2 class methodsFor: 'lucky class side protocol 1' stamp: 'LuckyName 6/8/2016 17:17'!
luckyClassSideMethod1
^ super luckyClassSideMethod1, ' subclass'
! !
实际上,您可以剪切和粘贴前面的块。
然后将换行转换为回车,否则 Pharo 会抱怨。这个很重要。如果您在 Linux/Mac OS X 上,您可以使用以下
cat Lucky-Package1-unix.st | tr \\n \\r > Lucky-Package1-pharo.st
在 Windows 上,我仍然会使用来自 git-scm https://git-scm.com/download/win的 bash、vi、cat、tr
然后归档在Lucky-Package1-pharo.st. 它应该出现在Lucky-Package1系统浏览器的包中。