gpt4 book ai didi

julia - julia 中事件驱动代码的匿名函数和 foreach 用法

转载 作者:行者123 更新时间:2023-12-04 02:33:11 24 4
gpt4 key购买 nike

我目前正在关注 Aurelien Geron (https://github.com/ageron/julia_notebooks) 的 Pythonistas notebook 的 Julia,我对使用以下代码的匿名函数章节感到有点困惑:

handlers = []

on_click(handler) = push!(handlers, handler)

click(event) = foreach(handler->handler(event), handlers)

on_click() do event
println("Mouse clicked at $event")
end

on_click() do event
println("Beep.")
end

click((x=50, y=20))
click((x=120, y=10))

主要是我看不到on_click() 如何从click() 获取事件。任何人都可以阐明它吗?

最佳答案

可能不太明显的是 handlers 数组是如何填充的,即通过应用 on_click() 两次。

on_click(handler) = push!(handlers, handler)

定义一个添加处理程序的函数,而

on_click() do event
println("Mouse clicked at $event")
end

on_click() do event
println("Beep.")
end

调用这个新定义的函数两次。 do 符号稍微隐藏了这一点,但基本上可以转换为:

push!(handlers, event -> println("Mouse clicked at $event"))
push!(handlers, event -> println("Beep."))

click() 被调用时接下来发生的是提供的元素,例如(x=50, y=29) 使用 foreach 构造传递给所有处理程序。

关于julia - julia 中事件驱动代码的匿名函数和 foreach 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63010061/

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