workspace 对我来说 return 不是正确的值
workspace does not return the correct value for me
我的一些代码有问题。
如果我写 Recenzes select: [:a | a komponenta nazev = 'Hitachi P21']
我得到了一些正确的记录。但是如果我使用这样的东西:
| brzdy |
brzdy := (((
(Sekces select: [:b | b nazev = 'Brzdy']) collect: [:b | b komponenty]) flatten)
select: [:c | c vyrobce nazev = 'Hitachi']) collect: [:d | d nazev].
我可以用 ^ 命令得到 'Hitachi P21'。但是如果我在这里使用变量 'brzdy':Recenzes select: [:a | a komponenta nazev = brzdy]
我什么也得不到。
简而言之。我想为 'Komponenty' 显示 'Recenzes',它们在 'Sekces' 中,值为 'Brzdy',它们保存在 'Komponenty' 列(设置)中,用于 'Recenzes'和 'Sekces'.
有人知道为什么吗?
由于 brzdy
是 #collect:
消息的结果,因此它是字符串的集合,而不是单个字符串。因此,没有元素 a
会满足条件 a komponenta nazev = brzdy
,因为您将比较不同 类 的对象。在
行尝试一些东西
Recenzes select: [:a | brzdy includes: a komponenta nazev]
作为旁注,请记住您可以使用 select:thenCollect:
而不是 (select: blah) collect: bluh
来消除一些括号。例如
brzdy := (Sekces select: [:b | b nazev = 'Brzdy'] thenCollect: [:b | b komponenty]) flatten
select: [:c | c vyrobce nazev = 'Hitachi']
thenCollect: [:d | d nazev]
(我对#flatten
消息不熟悉,所以不知道是必要的还是多余的)。
我的一些代码有问题。
如果我写 Recenzes select: [:a | a komponenta nazev = 'Hitachi P21']
我得到了一些正确的记录。但是如果我使用这样的东西:
| brzdy |
brzdy := (((
(Sekces select: [:b | b nazev = 'Brzdy']) collect: [:b | b komponenty]) flatten)
select: [:c | c vyrobce nazev = 'Hitachi']) collect: [:d | d nazev].
我可以用 ^ 命令得到 'Hitachi P21'。但是如果我在这里使用变量 'brzdy':Recenzes select: [:a | a komponenta nazev = brzdy]
我什么也得不到。
简而言之。我想为 'Komponenty' 显示 'Recenzes',它们在 'Sekces' 中,值为 'Brzdy',它们保存在 'Komponenty' 列(设置)中,用于 'Recenzes'和 'Sekces'.
有人知道为什么吗?
由于 brzdy
是 #collect:
消息的结果,因此它是字符串的集合,而不是单个字符串。因此,没有元素 a
会满足条件 a komponenta nazev = brzdy
,因为您将比较不同 类 的对象。在
Recenzes select: [:a | brzdy includes: a komponenta nazev]
作为旁注,请记住您可以使用 select:thenCollect:
而不是 (select: blah) collect: bluh
来消除一些括号。例如
brzdy := (Sekces select: [:b | b nazev = 'Brzdy'] thenCollect: [:b | b komponenty]) flatten
select: [:c | c vyrobce nazev = 'Hitachi']
thenCollect: [:d | d nazev]
(我对#flatten
消息不熟悉,所以不知道是必要的还是多余的)。