问题标签 [beef]

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 回答
37 浏览

extension-methods - 如何使用扩展将接口一致性添加到我无法控制的类型?

在牛肉文档的扩展页面上,它说:

扩展可用于将接口一致性添加到您无法控制的类型(即:系统类型或在另一个库中定义的类型)。

不幸的是,它没有提供该用例的示例,我不知道如何继续。

假设我有一个界面IFooBarable

我想将此扩展方法添加到系统库类型中System.DateTime

...这样 DateTime 可以实现IFooBarable

是否应该有一种方法可以告诉编译器将DateTime其视为 的实现IFooBarable?例如,这样编译:

0 投票
1 回答
36 浏览

scope - 如何防止在循环中创建的对象在循环迭代结束时被释放

如果我正在创建一个对象并且我希望它只持续到当前代码块,之后它将被自动销毁(或至少标记为销毁),我可以使用scope关键字:

但是,如果我需要将对象保留到块之后,例如对于整个方法或对于它创建的块之外的块,我该如何指定该范围?例如,如何确保字符串存在于下面的第二个循环中?

0 投票
1 回答
23 浏览

list - 如何随机播放列表?

我如何List在牛肉中洗牌?我想添加一个扩展来就地Random洗牌:List

0 投票
1 回答
88 浏览

beef - “级联成员访问”运算符 (..) 有什么作用?

操作员文档中,它是这样说的:

x..y- 级联成员访问。结果为 x,这对于将方法调用链接在一起很有用。

这是什么意思?这是如何使用的?搜索“级联成员访问”只是有意义地为我提供了牛肉文档的摘录。

0 投票
1 回答
324 浏览

lambda - 定义 lambda 时 [&] 是什么意思?

方法参考文档中,有一些示例代码,复制如下:

在 lambda 定义的三个示例中的两个示例中,[&]分配表达式 ( scope) 和 lambda 的参数之间有一个。那是什么[&]

对于其他示例,以下是IDE 源代码中包含的测试的一些摘录:

这是源代码的 IDEHelper 部分的另一组示例/测试,其中每个 lambda 定义都有[&]

最后,[&]严格来说可能不是 lambda 的东西。我可以将它放在其他定义中let s = new [&] String();,例如它可以毫无问题地编译,并且据我所知,运行结果与没有它时的结果相同。但是,我还没有看到它出现在示例/测试代码的其他任何地方。

0 投票
1 回答
94 浏览

unit-testing - 如何编写应该失败的单元测试?

如果我做了一个应该抛出致命错误的测试,我该如何处理?例如,如何编写此测试以确保正确删除变量:

0 投票
1 回答
40 浏览

list - 如何在给定排序方法或 lambda 的情况下对列表进行排序?

如果我有一个方法或 lambda 来对List<T>例如使用 spaceship 运算符进行排序(来自文档x <=> y-如果 x < y,结果为负,如果 x == y,则结果为零,如果 x > y,则为正),我如何使用那个方法?

有一个Sort(Comparison<T>)方法,List<T>但文档没有解释如何使用它。

例如,假设我想按字符串的长度对字符串列表进行排序,首先是升序,然后是使用方法和 lambda 的降序:

0 投票
1 回答
37 浏览

sorting - 如何按值对字典键进行排序?

如果我有一个Dictionary和一个 lambda 可以用来对值进行排序,我如何获得按字典中相应值排序的键的列表或数组?

例如,如果我想Dictionary<String,int>按值降序对 a 进行排序怎么办:

0 投票
2 回答
79 浏览

memory - 避免创建临时对象的内存泄漏

在牛肉中,我可以使用以下代码:

这很好用,因为我可以轻松地删除a+b操作所做的堆分配。但是,如果我有:

我必须一次添加一个并一次删除每个结果。

有没有更好的方法来处理这些临时变量的破坏?

0 投票
1 回答
195 浏览

programming-languages - 用牛肉语言创建窗口

所以最近我一直在学习编译器和 llvm 以及所有这些东西。但真正困扰我的是牛肉。Beef 是一种很酷的编程语言,我刚刚学到了它,但它就像 C# Pro。但我不明白的一部分是窗口创建。牛肉使用我得到的 SDL。(我不知道它是如何链接的)您可以(在 MacOS 上)创建一个 NSWindow 和 tada。但这仅在 Objective-c(++) 中受支持。那么牛肉到底是怎么做到的呢?