gpt4 book ai didi

closures - Smalltalk是否有闭包?

转载 作者:行者123 更新时间:2023-12-04 13:29:01 25 4
gpt4 key购买 nike

如果它具有闭包,是否可以假定可以在其中使用许多强大的功能样式技术?

最佳答案

是的,Smalltalk具有关闭功能。以下代码创建一个闭包,该闭包返回其两个参数的总和:

sum := [ :a :b | a + b ].

闭包是可以实例化,传递和操纵的对象。要评估闭包,您可以发送 valuevalue:value:value:,...
sum value: 1 value: 2.

闭包主要与集合一起使用,以迭代,过滤,映射...集合的所有值:
aCollection select: [ :each | each isOdd ].
aCollection inject: 0 into: [ :each :result | each + result ].

此外,它们还用于控制结构,例如循环:
[ iterator hasNext ]
whileTrue: [ iterator next ].
1 to: 10 do: [ :each | ... ].

另外,条件使用闭包来实现:
condition
ifTrue: [ do this ]
ifFalse: [ do that ]

关于closures - Smalltalk是否有闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com