为什么julia不支持类似switch-case的东西

ste*_*ert 2 julia

至少根据当前有关Control Flow的文档,Julia不支持像开关盒这样的控制结构

switch case是命令式或面向对象语言中的常见流控制,为什么不使用julia?

语言支持开关盒(未完成)

  • C / C ++
  • 爪哇
  • 帕斯卡
  • 的PHP
  • Java脚本
  • 打字稿
  • 八度

Mic*_*ard 8

julia 的基本理念是将大多数功能作为包提供并保持核心(Base)超精简。所以“为什么 Julia 不支持 X”的答案通常是“Julia 通过包 Y 支持 X”。在这种情况下,Match.jl 提供了一个非常强大的类似 switch-case 的结构。还有一个很接近C的switch的Switch.jl包,但是没有主动维护。

  • 不过,这对于 julia 来说是一个很大的问题。将此类功能委托给外部包的其他语言或环境具有适当的设施来对包数据库进行适当的搜索。朱莉娅没有。充其量您可以尝试在`pkg.julialang.org` 网站上按[Ctrl]+F,但正如这个特定示例所示,您只会找到未维护的`Switch` pkg,而不是适当的`Match` 包. 使用 julia,查找包中是否存在此类功能的唯一可靠方法是完全按照 OP 所做的操作:在 stackoverflow 上询问。 (5认同)

Ale*_*ley 6

关于将其包含在茱莉亚语言中,已有广泛的讨论。它可能会在某个时候发生,但可能要等到v1.0之后。

请参阅此处以获取主要讨论(包括其他讨论的链接):https : //github.com/JuliaLang/julia/issues/18285

&这个信息也很有意义(但是现在已经关闭以支持上述内容):https : //github.com/JuliaLang/julia/issues/5410

编辑

同样值得一提的是,茱莉亚不需要为切换用例提供语法,因为最好将其作为(即通过元编程)实现(就功能而言),而无需将其包含在基本茱莉亚中。