Tag: 原始types

你如何更新T-SQL中的DateTime字段?

以下查询不会更新date时间字段: update table SET EndDate = '2009-05-25' WHERE Id = 1 我也没有破折号尝试过,但是这也行不通。

Haskell的代数数据types

我试图完全理解Haskell的所有概念。 与通用types类似的代数数据types是什么方式,例如,在C#和Java中? 他们有什么不同? 他们有什么代数的呢? 我熟悉通用代数及其环和领域,但我只是对Haskelltypes的工作有一个模糊的概念。

()在Haskell中究竟是什么?

我正在阅读学习你一个Haskell ,在monad章节中,在我看来, ()被视为每种types的“null”。 当我检查GHCi中的()时,我得到了 >> :t () () :: () 这是一个非常令人困惑的说法。 看来, ()是一个types本身。 我很困惑它如何适应这种语言,以及它如何能够代表任何types。

在C#4.0中命名参数和genericstypes推断

我一直在编程的假设是,当在C#4.0中调用方法时,为参数提供名称不会影响结果,除非这样做是“跳过”一个或多个可选参数。 所以我有点惊讶地发现以下行为: 给定一个采用Func<T> ,执行它并返回结果: public static T F<T>(Func<T> f) { return f(); } 另一种可以看到上述方法的方法: static void Main() { string s; 调用F(没有命名参数)编译没有任何问题: s = F<string>(() => "hello world"); // with explicit type argument <string> s = F(() => "hello world"); // with type inference 而当使用命名参数… s = F<string>(f: () => "hello world"); …使用显式types参数的上述代码行仍然编译没有问题。 也许不会太奇怪,如果你安装了ReSharper,它会提示“Type参数规范是多余的”。 但是,当删除types参数… s […]

为什么unique_ptr将deleter作为types参数,而shared_ptr则没有?

std::unique_ptr模板有两个参数:指针的types和删除器的types。 这第二个参数有一个默认值,所以你通常只是写一些像std::unique_ptr<int> 。 std::shared_ptr模板只有一个参数:指针的types。 但是,即使删除types不在类模板中,也可以使用此自定义删除程序。 通常的实现使用types擦除技术来做到这一点。 是否有同样的想法没有用于std::unique_ptr ?

Java字节原始types是否有真正的生活用途?

由于某些不可理解的原因, byte原型types是用Java签名的。 这意味着有效值是-128..127,而不是通常的0..255范围,代表一个字节中的8个有效位(没有符号位)。 这意味着所有的字节操作代码通常会进行整数计算并最终屏蔽掉最后的8位。 我想知道是否有真正的生活场景的Java byte基元types完全适合,或者如果它只是一个完全无用的devise决定? 编辑:唯一的实际使用情况是本地代码的单字节占位符。 换句话说,不要把它作为Java代码中的一个字节来操纵。 编辑:我现在已经看到了一个地方,内部紧密循环需要除以7(数字0..32),所以一个查找表可以完成字节作为数据types,所以内存使用可以保持低考虑L1caching使用。 这不是指签名/无符号,而是实际使用的情况。

无法将string转换为 interface {}

我写了一些代码,我需要它来捕捉参数,并通过fmt.Println传递它们 (我想要它的默认行为,写空格分隔参数,然后换行符)。 然而,它需要[]interface {}但是flag.Args()返回一个[]string 。 这是代码示例: package main import ( "fmt" "flag" ) func main() { flag.Parse() fmt.Println(flag.Args()…) } 这将返回以下错误: ./example.go:10: cannot use args (type []string) as type []interface {} in function argument 这是一个错误? 不应该fmt.Println采取任何arrays? 顺便说一句,我也试图做到这一点: var args = []interface{}(flag.Args()) 但我得到以下错误: cannot convert flag.Args() (type []string) to type []interface {} 有没有“去”的方法来解决这个问题?

Scala的types系统的优点

我正在探索Scala语言。 我经常听到的一个说法是,斯卡拉比Java 更强大的types系统。 通过这个我觉得人们的意思是: scalac拒绝某些bug的程序, javac会快乐地编译,只会导致运行时错误。 某些不variables可以在Scala程序中编码,这样编译器不会让程序员编写违反条件的代码。 我是这么想的吗? 如果是这样,请指出说明这些例子的文章/博客/论文。

从“System.Int32”转换为“System.Nullable`1 ]无效

Type t = typeof(int?); //will get this dynamically object val = 5; //will get this dynamically object nVal = Convert.ChangeType(val, t);//getting exception here 在上面的代码中,我得到了InvalidCastException。 对于上面,我可以简单地写int? nVal = val int? nVal = val ,但上面的代码是dynamic执行的。 我得到一个包含在一个对象(这里为val)的值(非空types,如int,float等),我必须将其保存到另一个对象,通过将其转换为另一个types(可以或不可以为空) )。 什么时候 从“System.Int32”到“System.Nullable`1 [[System.Int32,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]的转换无效。 一个int ,应该是可转换/可types转换为nullable int ,这里有什么问题?

为什么消费者接受与陈述体而不是expression体的lambdas?

下面的代码令人惊讶的是编译成功: Consumer<String> p = ""::equals; 这个也是: p = s -> "".equals(s); 但是,这是失败的错误boolean cannot be converted to void的预期: p = s -> true; 用括号修改第二个例子也失败了: p = s -> ("".equals(s)); 这是Java编译器中的错误还是有我不知道的types推理规则?