我是否正确理解CREATE OR REPLACE基本上意味着"如果对象存在,丢弃它,然后以任何方式创建它?"
如果是这样,我做错了什么?这有效:
CREATE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')
Run Code Online (Sandbox Code Playgroud)
这不是(ORA-00922:缺失或无效选项):
CREATE OR REPLACE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')
Run Code Online (Sandbox Code Playgroud)
我做了些蠢事吗?我似乎无法找到有关此语法的大量文档.
也许这是一个愚蠢的问题,但有没有办法将布尔值转换为字符串,使得1转为"true",0转为"false"?我可以使用if语句,但很高兴知道是否有办法用语言或标准库来实现.另外,我是一个学生.:)
对于一个相对较新但不是全新的*nix用户,是否有任何好书可以获得更深入的知识(所以没有"Linux for dummies")?在大多数情况下,我不是在寻找从头到尾阅读的东西.更确切地说,当我需要知道如何做某事或者每当我有一个"如何再次这样做?"时,我宁愿拥有一些我可以拿起并阅读的东西.时刻.我想看到的一些领域是:
我希望它尽可能与平台无关(意味着它具有与任何Linux发行版以及BSD,Solaris,OS X等相关的信息),但我最常使用的unix系统是OS X和于Debian/Ubuntu.因此,如果我从拥有更多依赖于平台的书籍中受益最多,那么这些就是目标平台.
如果我能在一本书中得到所有这些,那很好,但我宁愿有更深入的材料而不是覆盖所有东西.因此,如果有任何书籍只涵盖其中一个区域,请发布.地狱,即使它与任何这些领域无关,也要发布它,你认为这是我所处位置的人应该知道的事情.
我只是想大致了解RDBMSes中使用的视图.也就是说,我知道一个观点是什么以及如何制作一个观点.我也知道我过去曾用过它们.
但我想确保我彻底了解视图的用处以及视图不应该有用的内容.进一步来说:
(并且为了记录,其中一些问题是故意天真的.这部分是概念检查.)
我对文档感到有些困惑fix(虽然我认为我理解它现在应该做什么),所以我查看了源代码.这让我更加困惑:
fix :: (a -> a) -> a
fix f = let x = f x in x
Run Code Online (Sandbox Code Playgroud)
这究竟是如何返回固定点的?
我决定在命令行试一试:
Prelude Data.Function> fix id
...
Run Code Online (Sandbox Code Playgroud)
它挂在那里.现在公平地说,这是在我的旧Macbook上,这有点慢.但是,此功能也不能太过,因为任何东西传递给ID给出了同样的事情,回(更不用提,它的吃了没有CPU时间)计算昂贵.我究竟做错了什么?
我一直在阅读有关解释器/编译器如何工作的一些内容,而我感到困惑的一个领域是AST和CST之间的区别.我的理解是解析器生成一个CST,将它交给语义分析器,将其转换为AST.但是,我的理解是语义分析器只是确保遵循规则.我真的不明白为什么它会实际做出任何改变,使其变得抽象而不是具体.
有没有关于语义分析器的东西,或者AST和CST之间的差异有点人为?
parsing terminology abstract-syntax-tree semantic-analysis concrete-syntax-tree
是的,我完全清楚我所询问的内容是完全愚蠢的,任何想要在生产代码中尝试这样的事情的人都应该被解雇和/或开枪.我主要是想看看是否可以做到.
现在已经不在了,有没有办法从类外部访问C++中的私有类成员?例如,有没有办法用指针偏移来做到这一点?
(天真和其他非生产准备技术欢迎)
正如评论中所指出的,我问了这个问题,因为我想写一篇关于过度封装的博客文章(以及它如何影响TDD).我想看看是否有办法说"使用私有变量不是100%可靠的方法来强制封装,即使在C++中也是如此." 最后,我决定更多地关注如何解决问题,而不是为什么这是一个问题,所以我没有像我原先计划的那样突出显示这里提到的一些东西,但我还是留下了一个链接.
无论如何,如果有人对它的出现感兴趣,那么它就是: 测试驱动开发的敌人第一部分:封装(我建议在你决定我疯了之前阅读它).
假设我有一个方法将某种对象作为参数.现在说如果这个方法传递一个null参数,那就是一个致命的错误,应该抛出一个异常.编写这样的代码对我来说是否值得(请记住这是一个简单的例子):
void someMethod(SomeClass x)
{
if (x == null){
throw new ArgumentNullException("someMethod received a null argument!");
}
x.doSomething();
}
Run Code Online (Sandbox Code Playgroud)
或者,当它调用x.doSomething()时,依赖它抛出NullException是否安全?
其次,假设someMethod是一个构造函数,在调用另一个方法之前不会使用x.我应该立即抛出异常还是等到需要x然后抛出异常?
使用基于寄存器的虚拟机与使用基于堆栈的虚拟机有什么优缺点?
对我而言,基于寄存器的机器似乎更直接的编程和更高效.那么为什么JVM,CLR和Python VM都是基于堆栈的呢?
我从来没有注意到__path__今天之前在我的某些软件包上定义的属性.根据文件:
包支持另一个特殊属性
__path__.这被初始化为一个列表,其中包含在__init__.py执行该文件中的代码之前保存包的目录的名称.这个变量可以修改; 这样做会影响将来对包中包含的模块和子包的搜索.虽然通常不需要此功能,但它可用于扩展程序包中的模块集.
有人可以向我解释这究竟是什么意思以及为什么我会想要使用它?