Smalltalk 数组操作
Smalltalk array manipulaton
我是使用 smalltalk 的新手,我正在尝试在数组中迭代数组并评估每个数组成员是否可以被 4 整除如果为真,它将 return 包含使用 [ 的元素的字节数组=20=]方法
这是我的代码:
| 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
方法中使用布尔条件。你知道使用 select 方法来 return 所述输出的其他方法吗?
谢谢!
欢迎使用 Smalltalk!你的问题有点模棱两可。你想 select 每个内部数组,其中任何元素都可以被 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.
].
].
].
(先阅读)
如果你想select并打印:
anArray select: [:eachArray |
(eachArray anySatisfy: [:eachElement | eachElement \ 4 == 0])
ifTrue: [Transcript cr; show: eachArray]; "no need to #printString"
yourself]
强制由 #anySatisfy:
产生的 Boolean
由块回答。
我是使用 smalltalk 的新手,我正在尝试在数组中迭代数组并评估每个数组成员是否可以被 4 整除如果为真,它将 return 包含使用 [ 的元素的字节数组=20=]方法 这是我的代码:
| 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
方法中使用布尔条件。你知道使用 select 方法来 return 所述输出的其他方法吗?
谢谢!
欢迎使用 Smalltalk!你的问题有点模棱两可。你想 select 每个内部数组,其中任何元素都可以被 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.
].
].
].
(先阅读
如果你想select并打印:
anArray select: [:eachArray |
(eachArray anySatisfy: [:eachElement | eachElement \ 4 == 0])
ifTrue: [Transcript cr; show: eachArray]; "no need to #printString"
yourself]
强制由 #anySatisfy:
产生的 Boolean
由块回答。