问题标签 [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.

0 投票
1 回答
49 浏览

unit-testing - 创建一个 ceylon.test.TestRunner

我正在尝试创建一个可以以编程方式运行的测试套件。(文档确实提到可以让 IDE 进行测试运行,但在我看来,将测试套件设置为具有自己的可运行单元的标准 Ceylon 模块似乎是一种更常规的方法。此外,文档没有没有说明如何以 IDE 方式实际执行此操作)。

所以,我正在使用createTestRunner函数创建一个TestRunner 。所述函数将TestSource s (' ') 的 Sequential 作为其第一个参数。是这种类型的别名:TestSource[]TestSource

这提示了一个问题:我想如何将我的测试提供给测试运行器?

对于初学者来说,似乎最容易将它们放在本地函数中,然后让测试运行程序以某种方式访问​​这些函数(未进一步指定)。由于别名中包含的一长串类型TestSource似乎不包括实际的Functions,因此我尝试寻找最近的候选对象:FunctionDeclaration

为了做出这样的函数声明,我首先不得不考虑我的测试包装函数实际上可能是什么样子。也许是这样的?

(顺便说一下,这些函数在类型上是等效的)

经过大量Ceylon Herd 审查后,我认为FunctionDeclaration此类函数的 a 可以这样拼写:

所以现在,我所要做的就是将它提供给createTestRunner函数。我只需要放入myFunctionDeclaration一个TestSource[]

但是第一行不起作用。myFunctionDeclaration'FunctionDeclaration' 类型的类型根本不会作为TestSource类型传递。为什么不?不是FunctionDeclaration正确的 TestSource 类型吗?查看 的别名定义TestSourceFunctionDeclaration似乎就可能的类型列表中:

我在这里想念什么?

0 投票
1 回答
23 浏览

ceylon - TestRunner.run() 不运行测试?

我创建了一个“Hello World”类型的测试套件,但我似乎无法让它运行任何测试。执行时,它只是说:

达到运行功能

进程以退出代码 0 结束

因此,我可以说我的两个包含测试的函数永远不会执行,因为它们包含永远不会打印的打印语句。

这是我的 tests/run.ceylon 文件的源代码:

0 投票
1 回答
31 浏览

ceylon - ceylon.test.TestRunner 在测试失败时失败

每当测试函数(用 注释的函数test)包含失败的断言时,断言与抛出异常时的效果相同:不会执行该函数中的其他代码行。因此,用“test”注释的函数中的断言语句与普通 Ceylon 函数中的普通断言语句一样工作。这与文档相反,该文档指出普通的断言语句可用于进行单元测试。

因此,运行下面的代码,我可以看到语句myTests1,但看不到“myTests2”:

这是实际输出:

0 投票
0 回答
145 浏览

functional-programming - Ceylon 中递归类型函数的类型

有没有办法在 Ceylon 中实现某种递归类型的函数?例如,我可以在 Ceylon 中以类型安全的方式定义组合逻辑,如下所示:

此代码按预期工作。但是,为了清晰、简洁和适用于其他问题,我希望能够仅使用函数来实现此行为。采取类似以下(非工作)示例:

在函数别名版本中,Fi 类型表示其操作数和返回值可以无限组合的函数。请注意,由于它们的递归性质,类型 Fi、Fi(Fi) 和 Fi(Fi)(Fi) 可以被认为在功能上是等效的;他们中的任何一个的消费者所知道的是,如果他们有一个函数,如果在一个 Fi 上调用,就会给他们另一个 Fi。

以下是我对 Ceylon 目前支持的内容的理解:

  • 由于在编译期间被擦除,因此不支持递归别名。
  • 我不知道当前有任何 Ceylon 功能可用于递归地专门化 Callable 类型或以其他方式获得所需的无限链接。
  • 一个可能相关的问题得到了否定的答复。然而,那是两年半前的事了,在 Ceylon 1.2 和 Gavin King 写的关于新类型函数支持的博客中实现了一些可能相关的特性(如类型函数)之前
  • 高阶泛型有一个github 问题。
  • 关于允许 Callable 的自定义实现还有另一个github 问题。

可以在当前版本的 Ceylon 中实现所需的行为吗?或者它肯定需要上述积压功能中的一项或两项?

0 投票
2 回答
97 浏览

reflection - 锡兰元模型

我正在研究锡兰并对它的元模型有疑问。我想创建一些创建一些基类'DataContainer',它允许使用内置的equals-hash实现实例化不可变类:例如Identifier(125,“ab”)== Identifier(125,“ab”)所以基类应该收集所有共享的非变量值,并在“哈希”和“等于”方法中使用此信息。我写了这段代码:

Identifier 类是 DataContainer 的客户端。我整体上喜欢这个解决方案,但我必须将“类”传递给超类构造函数,因为如果我在 DataContainer 中使用“类”,它就看不到任何子类的成员。如何在基类方法中获取扩展类成员的实际列表?像'this'这样的东西不起作用......

0 投票
3 回答
679 浏览

ceylon - How to test if collection contains all elements of other collection

With a Set in Ceylon it is straightforward to determine if one collection is a superset of the other. It's just first.superset(second). What's the best way to do the equivalent for an Iterable, List, or Sequential using multiset (or bag) semantics? For example something like the pseudocode below:

0 投票
2 回答
91 浏览

arrays - Ceylon 中的多维数组

我想用多维数组在锡兰工作。这是在锡兰计划的吗?如果是这样,我该如何申报?

我想在 Ceylon 中使用这个构造,如下面的 Java 所示:

0 投票
2 回答
51 浏览

properties - Ceylon 中的属性(getter 和 setter)

如何在锡兰定义房产?我知道我可以编写getName函数setName来获取和设置支持变量:

但我希望能够提供对属性的类似属性的访问:

我如何在锡兰做到这一点?

0 投票
1 回答
41 浏览

ceylon - 数学模块在哪里?

锡兰之旅中提到的第一个进口是

modules.ceylon为了能够导入此math模块,我需要放入什么?它不是以下任何一个:

0 投票
1 回答
93 浏览

string - 将字符串转换为 UTF-8 字节

如何将 Ceylon 中的字符串编码为 UTF-8 字节?