Smalltalk 我正在使用pharo2.0,我需要实现一个字典,其中必须映射符号,但我不知道如何实现它
所以我想实现一个字典,在这里我可以把符号,比如#xyz,映射到一些数字值,比如1。给定一个输入,我必须能够确定输出中会出现多少次#xyz 我想我必须使用以下语法Smalltalk 我正在使用pharo2.0,我需要实现一个字典,其中必须映射符号,但我不知道如何实现它,smalltalk,pharo,Smalltalk,Pharo,所以我想实现一个字典,在这里我可以把符号,比如#xyz,映射到一些数字值,比如1。给定一个输入,我必须能够确定输出中会出现多少次#xyz 我想我必须使用以下语法 Dictionary newFrom: {#xyz -> 1. #abc -> 2. #klm -> 3} 但我无法将这个概念应用到程序中。在闲聊中,如何引用特定的值密钥对 假设我的代码必须执行以下操作 10个苹果+5个苹果=15个苹果 或 10个苹果+5个桔子=10个苹果+5个桔子 然后在一些输入函数中,我必须执
Dictionary newFrom: {#xyz -> 1. #abc -> 2. #klm -> 3}
但我无法将这个概念应用到程序中。在闲聊中,如何引用特定的值密钥对
假设我的代码必须执行以下操作
10个苹果+5个苹果=15个苹果
或
10个苹果+5个桔子=10个苹果+5个桔子
然后在一些输入函数中,我必须执行以下操作:
//请原谅伪c语法,我是新手
if (fruit1 == 1 && fruit2 == 1) //here #apples -> 1
<br>resultFruit == apples.
<br>else
<br>resultfruit == 0 //where 0 -> no change ie fruits are different.
if(果1==1&&果2==1)//here#apples->1
结果水果==苹果。
否则
resultfruit==0//其中0->无变化,即结果不同。
如何将其转换为聊天代码
感谢您的帮助。如果您能为我指出任何已知项目中的dictionary实现,请这样做,以便我能够看到并理解它应该如何编写。我不了解dictionary,但关于您的示例,我建议下一个策略: 创建类
Fruits
,它知道其中有多少苹果和其他水果。然后在Integer
中创建一个DSL方法,比如apples
和oranges
,它将返回一个新的水果
对象和指定数量的水果。然后在结果
中创建+
和=
方法,以便您可以组合结果并比较它们
如果我误解了你的问题,请告诉我。字典的基本用法是:或:put: 假设您将字典分配给一个变量:
myDict:=Dictionary newFrom:{xyz->1.#abc->2.#klm->3}。
然后你就可以写了
myDict地址:#xyz
读取条目#xyz
(返回1)
或者你也可以通过
myDict at:#foo put:123