我想知道为什么F-Sharp不支持无限.
这适用于Ruby(但不适用于f#):
let numbers n = [1 .. 1/0] |> Seq.take(n)
Run Code Online (Sandbox Code Playgroud)
- > System.DivideByZeroException:尝试除以零.
我可以用非常复杂的方式编写相同的功能:
let numbers n = 1 |> Seq.unfold (fun i -> Some (i, i + 1)) |> Seq.take(n)
Run Code Online (Sandbox Code Playgroud)
- >工作
但是我认为第一个会更清楚.我找不到在F#中使用动态类型无穷大的任何简单方法.有无限关键字,但它是浮点数:
let a = Math.bigint +infinity;;
Run Code Online (Sandbox Code Playgroud)
System.OverflowException:BigInteger不能表示无穷大.at System.Numerics.BigInteger..ctor(Double value)at.$ FSI_0045.main @()因错误而停止
编辑:这似乎也适用于迭代:
let numbers n = Seq.initInfinite (fun i -> i+1) |> Seq.take(n)
Run Code Online (Sandbox Code Playgroud) 我需要像ABAP一样拆分ABAP
20091101 --> "01", "november", "2009"
Run Code Online (Sandbox Code Playgroud)
"01"和"2009"是微不足道的,但我如何获得月份名称(应该本地化)?
有没有这样做的功能?
如果没有这样的功能,也许是一个带有月份名称的表?
我想使用正则表达式从包含 SQL 语句的字符串中提取“绑定变量”参数。在 Oracle 中,参数以冒号为前缀。
例如,像这样:
SELECT * FROM employee WHERE name = :variable1 OR empno = :variable2
Run Code Online (Sandbox Code Playgroud)
我可以使用正则表达式从字符串中提取“variable1”和“variable2”吗?也就是说,获取以冒号开头并以空格、逗号或字符串末尾结尾的所有单词。
(如果在 SQL 语句中多次使用同一个变量,我不在乎是否多次获得相同的名称;稍后我可以解决这个问题。)
我有一个MySQL数据库,其中每个用户都有一个帐户,每个帐户可以拥有多个权限.
我的最终目标是以帐户的用户名和逗号分隔的权限ID列表结束.我有两种方法可以做到这一点:
SELECT a.username, GROUP_CONCAT(rp.permission_id) as permission_ids
FROM account AS a
JOIN role_permission AS rp
ON rp.role_id = a.role_id
WHERE a.id = 1902
Run Code Online (Sandbox Code Playgroud)
... 要么 ...
SELECT username
FROM account
WHERE id = 1902;
SELECT permission_id
FROM account_permission
WHERE account_id = 1902
Run Code Online (Sandbox Code Playgroud)
使用单个查询,我可以完全按照我的要求获得结果.有了两个查询,我必须使用第二个结果集在应用程序(PHP)中创建逗号分隔的列表.
是否有任何性能原因不选择第一个选项?我之前从未使用过GROUP_CONCAT,所以我不知道它的含义,性能方面.
我知道有非常相似的问题,但我不确定它们中的任何一个正是我需要的.我有2个方法做完全相同的事情(所以我不需要覆盖或任何东西)唯一的区别是参数和返回类型.
public List<List<TestResult>> BatchResultsList(List<TestResult> objectList)
{
}
public List<List<ResultLinks>> BatchResultsList(List<ResultLinks> objectList)
{
}
Run Code Online (Sandbox Code Playgroud)
有没有一种巧妙的方法,这不涉及duplciate代码(类型在方法内使用).
我正在使用Batik库,这对于在Java中显示SVG图形非常有用.对于显示和呈现SVG文档的基本用例,使用起来非常简单.但是,我想做一些其他高级图形处理,我正在努力,因为我找不到任何可以让我执行以下类型任务的好资源:
有没有什么好的资源或技巧可以使用你知道的这个库?
在google Guice中,我可以使用该功能创建基于多个模块的注入器createInjector.
因为我用来GWT.create在GoogleGin中实现注入器,是否可以基于多个创建一个Ginjector AbstractGinModule.
如果我们不能,您如何组织代码以避免在同一个模块中拥有所有绑定?
在我正在制作的DynamicMethod中,我发现了"操作可能会破坏运行时的稳定性"的原因,虽然我很容易修复它,但它给我留下了一个看似简单的问题:
以下是示例程序.运行此命令时,它将在编译方法时因"操作可能使运行时不稳定"异常而崩溃.
只是通过改变声明为变量的变量的类型TestClass来解决问题Object,但我仍然想知道如何将引用转换为代码中的相应类型.
在代码中我标记了一个带有星号的行.在那一点上我可以发出什么代码来使Object堆栈上的TestClass引用成为引用,以便方法调用将通过?
请注意,我知道这是产生问题的方法调用,如果我完全注释掉这些行,那么变量的类型无关紧要,该方法被编译并执行正常.
这是代码.
using System;
using System.Reflection.Emit;
namespace ConsoleApplication9
{
public class TestClass
{
public void TestMethod() { }
}
class Program
{
static void Main(string[] args)
{
Type type = typeof(TestClass);
DynamicMethod method = new DynamicMethod("", typeof(Object), null);
ILGenerator il = method.GetILGenerator();
LocalBuilder variable = il.DeclareLocal(typeof(Object));
// Construct object
il.Emit(OpCodes.Newobj, type.GetConstructor(new Type[0]));
il.Emit(OpCodes.Stloc, variable);
// Call Test method
il.Emit(OpCodes.Ldloc, variable);
// ***************************************** what do I do here? …Run Code Online (Sandbox Code Playgroud)