问题标签 [ceylon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ceylon - Ceylon 的无限可迭代生成器
锡兰有没有一种简单的方法来创建一个无限迭代,通过调用相同的给定无参数函数来生成每个元素?换句话说,语言模块是否提供与 Java 8 等效的功能Stream.generate(Supplier<T>)
?
ceylon - Ceylon 不能将某些函数应用于元组?
这段代码有什么问题?
...最后一行可以替换为:
...我相信这些应该可以正常运行,但是在这两种情况下我都会收到此错误:
ceylon - 如何将扩展 Java 类的 Ceylon 类转换为 Java 类
假设您在需要使用的遗留库中有一个 Java 方法,该方法将 Class 作为参数:
现在,假设您有一个扩展 JavaClass 的 Ceylon 类:
现在,我怎样才能takeClass
在 Ceylon 中使用该方法以使其有效?
如上所示,我一直在尝试javaClass
模块中的功能ceylon.interop.java
但没有成功......如果我这样做javaClass<JavaClass>()
了,那么它可以工作,但这对我来说当然没用。
编辑:
使用时出现的错误javaClass<CeylonClass>()
如上图:
sequence - 如何在 Ceylon 中展平序列序列?
给定一个序列序列类型,如何将其转换为单个扁平序列类型?考虑以下锡兰代码:
我是第一次尝试使用 Ceylon,并在教程和 API 文档中摸索。unzip 方法看起来有点接近我的需要,但不完全是。
generics - Ceylon 中 max{} 的返回类型
我明白为什么推断的返回类型max({})
是Null
(我认为该函数如何与空/可能为空/非空的可迭代对象一起工作真是太棒了),但为什么使用空的命名参数列表 - <code>max{} - 推断返回Nothing
?为什么这些情况不同?这是故意的吗?
这编译并运行得很好,
尽管我预计如果它实际评估它会立即失败nothing
。既然Nothing
是一切的子类型,你甚至可以这样做,
并且编译器不会抱怨,但运行它会产生一个java.lang.NullPointerException
. 什么?!我以为我们永远不应该在锡兰看到这种情况!
ceylon - 如何以优雅的方式在锡兰按类型过滤?
我希望以下内容会起作用:
甚至这样:
但没有运气。
ceylon - 将一个列表拆分为 n 个其他列表和其他问题
我还没有完全验证正确性和缺少一个错误的错误,但请耐心等待。
这里的目标是将一副纸牌(定义为 {Card*})处理/拆分为多个 Decks(可选地将 {Card*} 作为构造函数参数)。我想以循环方式拆分牌,就像实际上会发牌一样。这是我到目前为止的代码:
- 这是将列表拆分为多个列表的正确/惯用方式吗?
- 如果我不想反转所有卡片(即附加到列表而不是前置,或反转可迭代),我该怎么做?
- 我将如何
decks
在循环中懒惰地初始化变量的值? - 有什么办法可以摆脱需要
empty
我拥有的变量吗? - 我有没有机会在不需要可变数据结构的情况下编写这个?
谢谢,对于多问题感到抱歉(我已经在 codereview.stackexchange.com 上创建了这个,但我没有代表在ceylon
那里创建标签)。
ceylon - 锡兰相当于 Collections.shuffle()
有没有办法“洗牌”一个Iterable
(或Sequence
),以便随后随机排序元素,类似于Java的Collections.shuffle()
?我查看了、 和的 API 文档Iterable
,但没有发现任何相关内容。(旁注:名称混淆)Collection
Sequence
ceylon.language::shuffle
我想我可以自己实施洗牌,但我正忙着偷懒:-)
metaprogramming - 如何通过元模型使用显式的第一个参数和默认的第二个参数来实例化一个类?
我有以下顶级课程:
现在,我想使用 的显式值来实例化这个类first
,但使用 的默认值second
。
我知道如何通过使用命名参数通过显式编译的代码来做到这一点:
现在,我想做与上述代码相同的事情,但使用Class<Example, []|[String,String=]>
对象。