int* p = 0;
int* q = &*p;
Run Code Online (Sandbox Code Playgroud)
这是未定义的行为吗?我浏览了一些相关问题,但这个具体方面没有显示出来.
在阅读SICP时,我遇到了逻辑编程第4.4章.然后我开始研究Prolog编程语言并尝试理解Prolog中的一些简单的任务.我发现Prolog似乎在数值计算方面遇到麻烦.
这是标准Prolog中的阶乘计算:
f(0, 1).
f(A, B) :- A > 0, C is A-1, f(C, D), B is A*D.
Run Code Online (Sandbox Code Playgroud)
我发现的问题是我需要引入两个辅助变量(C和D),一个新的语法(is),并且问题是不可逆的(即,f(5,X)按预期工作,但f(X,120)不能).
天真的,我希望至少C is A-1, f(C, D)可以用上面的东西代替f(A-1,D),但即使这样也行不通.
我的问题是:为什么我需要在数值计算中做这些额外的"东西",而不是在其他查询中呢?
我明白(并且SICP非常清楚),一般来说,"做什么"的信息不足以回答"如何做"的问题.因此,(至少一些)数学问题的陈述性知识不足以真正解决这些问题.但这引出了下一个问题:Prolog中这些额外的"东西"如何帮助我将制定局限于那些"做什么"足以回答"如何做"的问题?
我有一个系统的5个分支 - 让我们称他们为主人,伦敦,伯明翰,曼彻斯特和演示.它们仅在配置文件中有所不同,每个都有自己的一组图形文件.
当我进行一些开发时,我从master创建一个临时分支,在该功能之后调用,并对其进行处理.当准备合并我checkout master和git merge功能带来我的工作.这似乎工作得很好.
现在我需要将其更改到其他分支中,而不会丢失它们之间的差异.我怎样才能做到这一点?伯明翰获得伦敦的图形以及配置文件中存在冲突,我一直没有遇到任何问题.
当分支最终正确时,我将其推送到一个软件仓库,并将每个分支拉到一个Linux盒子进行最终测试,从那里发布到生产中使用rsync(设置为忽略.git存储库本身).这个阶段也可以正常工作.
我是目前唯一的开发人员,但我需要在邀请帮助之前让流程稳固:)
我正在编写一个解析器,它调用一些依赖于某些值的函数.
我可以用这样的简单开关实现这个逻辑:
switch(some_val)
{
case 0:
func0();
break;
case 1:
func1();
break;
}
Run Code Online (Sandbox Code Playgroud)
或者与代表和这样的字典:
delegate void some_delegate();
Dictionary<int, some_delegate> some_dictionary = new Dictionary<int, some_delegate>();
some_dictionary[0] = func0;
some_dictionary[1] = func1;
some_dictionary[some_value].Invoke();
Run Code Online (Sandbox Code Playgroud)
这两种方法是否相同,哪种方法更受欢迎?
你可以在Linux上使用任何好的OOP语言吗?很明显,Java会浮现在脑海中,即使在单声道下运行C#也是如此.
寻找可用于全面开发,Web开发,桌面,服务等的语言.
除了Mono C#和Java之外还有什么想到的?
我想看看Java API中的方法是做什么的.所以我想要JDK源代码.在我重新安装Linux之前,我有一个src.zip包含所有官方源代码的软件包.我只需告诉Eclipse这个文件在哪里,我就能看到代码.但现在我不再拥有该文件了...
所以问题是:我在哪里可以找到它?
我有一个类型A的列表,其中每个元素包含另一个类型B的列表.我想创建一个表单,当用户从包含值A的下拉列表中选择一个值时,另一个下拉列表将填充基于值的值在选定项目的类型B列表上.我是jQuery的新手,但我知道使用jQuery而不是纯jsp来做这个很方便.请大致说明我需要遵循的步骤来完成这项工作.
在我的Android应用程序中,我想在运行时重命名文件名.我该怎么做?
这是我的代码:
String[] command = {" mv", "sun moon.jpg"," sun_moon,jpg"};
try
{
Process process = Runtime.getRuntime().exec(command);
}
catch (IOException e)
{
Toast.makeText(this, ""+e, Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
我也使用renameTo(File f)方法,但它不起作用.
可能是使用反向视频来显示差异的东西.
据我所知,两个人都是同一类人PrintStream.任何人都可以告诉我他们的差异......他们如何改变自己的行为?