【问题标题】:Are there wildcards for use with the switch expression/statement in Ceylon?是否有通配符可用于 Ceylon 中的 switch 表达式/语句?
【发布时间】:2017-07-15 11:44:09
【问题描述】:

标题是我的问题。具体来说,通配符在匹配元组中的值时很重要。

在 OCaml 中是可能的:

match x with 
   (3, _) -> 5 | 
   (_, 4) -> 7 | 
   (4, 5) -> 6;; 

允许匹配不带通配符的元组值的“开关”结构是没有用的。在锡兰,我认为开关坏了;-)。

【问题讨论】:

    标签: ceylon


    【解决方案1】:

    不,这还不可能。你可以匹配一个元组文字(case ([1, 2])),你可以使用解构(case ([Integer i, Integer j]),这只是case (is [Integer, Integer]) { value [i, j] = x; … }的语法糖),但你不能使用文字值来匹配解构模式。

    【讨论】:

    • 是否计划实现与 ocaml 的模式匹配中相同的功能?
    • 我不确定;我记得有一些关于它的讨论,但我能找到的当前未解决的问题似乎都没有涵盖像 case ([1, x])case ([1, Integer x]) 这样的内容。
    • 是的,我们确实计划最终允许像 case ([1, x]) 这样的东西。
    猜你喜欢
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多