逻辑表达式(a && b) (a和b都有布尔值)可以写成这样!(!例如,A || !b)。这是不是意味着&&是“不必要的”?这是否意味着所有的逻辑表达式只能使用||和!?

一个同事给了我一个难题,我无法弄清楚这个C程序实际上是如何编译和运行的。这个>>>=运算符和奇怪的1P1字面值是什么?我在Clang和GCC中进行了测试。没有警告,输出为“??”

#include <stdio.h>

int main()
{
    int a[2]={ 10, 1 };

    while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] )
        printf("?");

    return 0;
}

我正在创建一个SQL设置脚本,我正在使用别人的脚本作为示例。下面是一个脚本示例:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[be_Categories](
    [CategoryID] [uniqueidentifier] ROWGUIDCOL  NOT NULL CONSTRAINT [DF_be_Categories_CategoryID]  DEFAULT (newid()),
    [CategoryName] [nvarchar](50) NULL,
    [Description] [nvarchar](200) NULL,
    [ParentID] [uniqueidentifier] NULL,
 CONSTRAINT [PK_be_Categories] PRIMARY KEY CLUSTERED 
(
    [CategoryID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

有人知道ON [PRIMARY]命令是做什么的吗?

我有一个小应用程序,提供当前位置:经度和纬度。 现在我必须浏览谷歌地图的经度和纬度。 请建议我该怎么做。

我问这个问题,首先不是因为垃圾收集的优点。我问这个问题的主要原因是我知道Bjarne Stroustrup说过c++在某个时间点上会有一个垃圾收集器。

话虽如此,为什么还没有加入呢?c++已经有了一些垃圾收集器。这是那种“说起来容易做起来难”的事情吗?或者还有其他原因没有添加它(并且不会在c++ 11中添加)?

交叉链接:

c++的垃圾收集器

澄清一下,我理解c++最初创建时没有垃圾收集器的原因。我想知道为什么不能添加收集器。

我知道有些关于java.util.Date和Joda-Time的问题。但经过一番挖掘,我找不到一个关于java之间差异的帖子。time API (Java 8中新增,由JSR 310定义)和Joda-Time。

我听说Java 8是Java。time API比Joda-Time更干净,可以做更多的事情。但我找不到比较这两者的例子。

什么可以java。时间做不到的事,时间做不到? 什么可以java。时间胜过joda时间? java.time的性能更好吗?

我想给一个用户在数据库上的所有权限,而不使它成为管理员。 我想这样做的原因是,目前DEV和PROD是同一集群上的不同db,所以我不希望用户能够更改生产对象,但必须能够更改DEV上的对象。

我试着:

grant ALL on database MY_DB to group MY_GROUP;

但它似乎没有给予任何许可。

然后我试着:

grant all privileges on schema MY_SCHEMA to group MY_GROUP;

它似乎允许我创建对象,但不允许我在该模式上查询\删除属于其他用户的对象

我可以继续在MY_SCHEMA上给用户USAGE权限,但是它会抱怨没有对表的权限…

所以我想我的问题是:是否有任何简单的方法将所有权限赋予一个用户在数据库上?

我在PostgreSQL 8.1.23工作。

我想要的是:

我在一个远程站点上有一个clojure程序,让我们称它为mccarthy。 我想做的是从我的笔记本电脑连接到nrepl-ritz,最好使用nrepl-ritz-jack-in。插孔在本地程序中工作良好,但似乎不能连接到远程程序。

尝试1

C-x C-f on /mccarthy:code/program/project.clj

(需要的nrepl-ritz)

m x nrepl-ritz-jack-in

结果

Emacs似乎挂起了。如果我去到*nrepl-server*缓冲区,我看到:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.flatland.drip.Main.invoke(Main.java:117)
    at org.flatland.drip.Main.start(Main.java:88)
    at org.flatland.drip.Main.main(Main.java:64)
Caused by: java.lang.AssertionError: Assert failed: project
    at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
    at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)

(还有很多其他的台词……)

我在我的笔记本电脑上使用了drip,而不是在mccarthy上,所以nrepl-ritz-jack-in显然没有检测到它是一个远程文件。然而,在这种情况下,常规的旧nrepl-jack-in将按预期工作。

尝试2

我还试着用莱茵写麦卡锡,开始写nrepl-ritz:

mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874

从我的笔记本电脑,我转发一个端口,使本地42874连接到麦卡锡的42874:

ssh -L 42874:localhost:42874 -N mccarthy

然后,从我本地的Emacs:

(require 'nrepl-ritz)

m x nrepl

主持人:127.0.0.1

端口:42874

这给了我一个联系:

; nREPL 0.1.7-preview
user> 

为了验证,我跑了

m x nrepl-ritz-threads

它给了我一个很好的线程表。

m x nrepl-ritz-break-on-exception

user> (/ 1 0)

结果

这会挂起,但有时会显示一个隐藏的调试缓冲区,其中有一些重启可用。如果我告诉它将异常传递回程序,它永远不会将控制权交还给REPL。

我已经做了大量的搜索,但没有能够得到任何更具体的比“确保lein在你的路径上”(我确实这样做了,在两台机器上…)

如何使用Dart生成随机数?

我已经意识到可以使用普通函数创建小部件,而不是继承StatelessWidget的子类。一个例子是:

Widget function({ String title, VoidCallback callback }) {
  return GestureDetector(
    onTap: callback,
    child: // some widget
  );
}

这很有趣,因为它需要的代码比成熟的类要少得多。例子:

class SomeWidget extends StatelessWidget {
  final VoidCallback callback;
  final String title;

  const SomeWidget({Key key, this.callback, this.title}) : super(key: key);

  @override
  Widget build(BuildContext context) {
      return GestureDetector(
        onTap: callback,
        child: // some widget
      );
  }
}

所以我一直在想:在创建小部件时,除了语法之外,函数和类之间还有什么不同吗?使用函数是一种好的实践吗?