我是使用 smalltalk 的新手,我正在尝试在数组中迭代一个数组,并评估每个数组成员是否可被 4 整除,如果为真,它将使用 select 方法返回包含该元素的字节数组 这是我的代码:
| anArray result |
anArray := #(#(1 2 3 3 4 6 7) #(6 7 6 9 9 4 7 6) #(11 12 13 14 15 14)).
anArray select: [ :each |
each do: [ :ea |
ea \\ 4 == 0 ifTrue: [ Transcript show: each printString ]
]
]
问题在于它在 select
方法中需要一个 bool 条件。您知道使用 select 方法返回上述输出的其他方法吗?
谢谢!
最佳答案
欢迎来到 Smalltalk!你的问题有点模棱两可。你想选择每个元素可以被 4 整除的内部数组吗?如果是这样,请尝试以下操作:
| anArray result |
anArray := #(#(1 2 3 3 4 6 7) #(6 7 6 9 9 4 7 6) #(11 12 13 14 15 14)).
anArray select: [ :eachArray |
eachArray anySatisfy: [ :eachElement |
eachElement \\ 4 == 0.
].
].
或者您想打印内部数组中可被 4 整除的每个元素?如果是这样,请尝试以下操作:
| anArray result |
anArray := #(#(1 2 3 3 4 6 7) #(6 7 6 9 9 4 7 6) #(11 12 13 14 15 14)).
anArray do: [ :eachArray |
eachArray do: [ :eachElement |
eachElement \\ 4 == 0 ifTrue: [
Transcript cr; show: eachElement.
].
].
].
关于arrays - Smalltalk 数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57764550/