有什么理由我更喜欢Collection.sort(list)方法而不是简单地调用list.sort()?无论如何,内部Collection.sort只是调用类的sort方法List.
令人惊讶的是,几乎每个人都在告诉我使用它Collection.sort.为什么?
显然可以,请参见此处 -至少这是我的看法。
合并之前。的远程分支master在origin左侧。两个分支都相同。
现在假设我和我的朋友都做了一些工作,并且我的朋友首先将他的工作推到了远程分支机构,而我已经在本地提交了我的工作。
在这种情况下,我不能简单地进行操作git push,因为这将导致commited by other从远程存储库中删除该文件(我认为我可以为此执行`git push -f,但是再次-这样会覆盖我朋友的提交)。
该文章建议git pull origin master(fetch将originrepo master分支中的更改merge放入本地master分支中)重写本地分支中的提交历史记录master!怎么会这样?我认为合并只能创建一个新的合并提交,而不能更改现有的提交。但是在这种情况下,提交顺序已更改-现在commited by other是第一个,然后是 my local commit。
因此,知道pull与fetch相同(它会更新origin/master本地存储在我的PC上的远程跟踪分支),然后将更新合并origin/master到本地分支中master,在这种情况下会产生相同的结果-合并是否会更改过去在本地master分支中提交的顺序?
带类B和派生类D:
class B {
int b;
};
class D : public B {
int d;
};
D* d = new D();
B* b = dynamic_cast<B*>(d);
Run Code Online (Sandbox Code Playgroud)
上面的方法可以正常工作-这只是简单的转换。我们确定b所指向的B对象中都有类(子)对象。
然而,
B* b = new D();
D* d = dynamic_cast<D*>(b);
Run Code Online (Sandbox Code Playgroud)
即使b指向有效D实例也不会编译-因为基类不是多态的。因此,仅添加一个空的虚拟方法即可解决该问题。
重要的问题是为什么C ++要求源类型是多态的?我发现的唯一的解释是这样的,但它只是规定“因为这是它的内部实现” -至少在我的眼睛)。设计人员dynamic_cast可能还会想到其他一些原因-那是什么?
如果我们签出提交而不是分支,HEAD(指向分支的指针)将指向提交而不是分支的名称(调用此提交A).这称为分离的HEAD状态.如果我创建了一个新的提交 - 提交B,那么新的提交将会丢失(好吧,也许不会立即),因为我们无法引用它(实际上,我没有得到它,因为每个提交都有一个ID,对吧?一旦我们知道ID,我们就可以引用它,但由于某种原因,Git将删除这些提交.可能Git无法告知提交属于哪个分支).
提交者只知道他们的父母,而不是孩子.是否有一个原因?如果提交A有提交B的引用,我们可以忘记分离的HEAD问题,对吧?但我想这会引起一些其他问题 - 那是什么?
我想知道为什么我们必须使用我们组织特有的 URI 来定义命名空间(就像 Java 中的包一样)。这显然是有道理的,可以让我们避免名称冲突。然而,这个页面说:
相同的前缀也可以引用不同的命名空间,具体取决于它们的上下文
所以基本上,如果我有自己的 XML 文档,并将自己的命名空间前缀myNamespace定义为http://hisdomain.com/test,那么有人可以重新定义 'myNamespace' 前缀以指向他自己的命名空间http://hisdomain.com/test,即使是错误的(我认为如果我定义的命名空间前缀具有文档中已定义)。
即使使用 URI,其他人也需要确保他们不使用我的前缀!
然后,使用 URI 并必须向命名空间提供定义就变得毫无用处,如果我们仅使用前缀而不必使用属性提供定义,则命名空间系统同样可以正常工作xlns。
如果我理解正确的话,这是不允许的:
<root xmlns:abc="mydomain.com/test" xmlns:abc="yourdomain.com/test">
...
</root>
Run Code Online (Sandbox Code Playgroud)
但这没关系 - 您可以abc用您的域名重新定义前缀。
<root xmlns:abc="mydomain.com/test">
<body xmlns:abc="yourdomain.com/test">
...//to use my namespace here, I'd need to redefine it again to mydomain.com/test
</body>
</root>
Run Code Online (Sandbox Code Playgroud)