我是Objective C的新手,我正在尝试编写一个定义复数的类.代码似乎很好,但是当我打印到控制台时,我的实例变量值为0.
这是代码:
//
// ComplexNumber.h
// Mandelbrot Set
//
// Created by Brett on 10-06-02.
// Copyright 2010 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <stdio.h>
@interface ComplexNumber : NSObject {
double real;
double imaginary;
}
// Getters
-(double) real;
-(double) imaginary;
// Setters
-(void)setReal: (double) a andImaginary: (double) b;
//Function
-(ComplexNumber *)squared;
@end
//
// ComplexNumber.m
// Mandelbrot Set
//
// Created by Brett on 10-06-02.
// Copyright 2010 __MyCompanyName__. All rights reserved.
//
#import "ComplexNumber.h"
#import …Run Code Online (Sandbox Code Playgroud) 以下代码无法编译:
class MyClass<T> : where T : MyClass <T>{}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解决这个问题吗?我使用了以下解决方法,但我想知道是否有更好的方法
class MyClass <T> : IMyClass where T : IMyClass {}
interface IMyClass {}
Run Code Online (Sandbox Code Playgroud) prolog中的管道运算符返回一个或多个原子头和尾部列表.
?- [a,b,c] = [a,b|[c]].
true.
Run Code Online (Sandbox Code Playgroud)
在单个匹配中嵌套多个管道可以这样做:
?- [a,b,c] = [a|[b|[c]]].
true.
Run Code Online (Sandbox Code Playgroud)
该声明[a|b|c]对a,b和c的推断是什么?
编辑
到目前为止,我所能推断的是:
?- [a,b,c] = [a|b|c].
false.
Run Code Online (Sandbox Code Playgroud)
我对找到答案的任何技术更感兴趣,而不是回答这个边缘无用的问题.
EDIT2
我显然不太熟悉prolog,一个简单的任务回答了我的问题......
?- R = [a|b|c].
R = [a| (b'|'c)].
Run Code Online (Sandbox Code Playgroud)
究竟发生了(b'|'c)什么?
我正在尝试了解Mergesort的空间要求,O(n).
我看到时间要求基本上是,等级(logn)*merge(n)的数量使得(n log n).
现在,我们仍然在左右两个不同的阵列中为每个级别分配n个.
我知道这里的关键是当递归函数返回时,空格被释放,但我没有看到它太明显.
此外,我找到的所有信息,只是说明所需的空间是O(n),但不解释它.
任何提示?
function merge_sort(m)
if length(m) ? 1
return m
var list left, right, result
var integer middle = length(m) / 2
for each x in m up to middle
add x to left
for each x in m after middle
add x to right
left = merge_sort(left)
right = merge_sort(right)
result = merge(left, right)
return result
Run Code Online (Sandbox Code Playgroud)
编辑
好了,多亏了@Uri,这就是诀窍
我一开始没看到的是时间只是添加,而内存增加和减少,所以最大时间是在执行结束时,但是最大量内存位于递归堆栈的底部.
所以,如果我们继续添加n + n/2 + n/4 + n/8 ....我们添加多少次并不重要,它永远不会大于2n,当我们到达递归堆栈时从底部开始上升,我们不保留用于前一个分支的内存,因此在最大值时,2n将是所使用的内存量O(n).
我的假设始终是CLR加载了应用程序域启动时所需的所有DLL.但是,我写了一个让我质疑这个假设的例子.我启动我的应用程序并检查加载了多少个模块.
Process[] ObjModulesList;
ProcessModuleCollection ObjModulesOrig;
//Get all modules inside the process
ObjModulesList = Process.GetProcessesByName("MyProcessName");
// Populate the module collection.
ObjModulesOrig = ObjModulesList[0].Modules;
Console.WriteLine(ObjModulesOrig.Count.ToString());
Run Code Online (Sandbox Code Playgroud)
然后我重复完全相同的代码,我的计数是不同的.附加DLL是C:\ WINNT\system32\version.dll.
我真的很困惑为什么计数会有所不同.
有人可以详细说明CLR正在做什么以及它如何加载这些东西,以及它正在做什么逻辑?
我在桌面上安装了Tortoise svn.我想使用命令行 svn.exe 执行一些任务?但我无法在我的机器上找到svn.exe.
我们是否必须安装其他东西来获取svn.exe命令?
打开文件作为读/写(如果存在)或不存在的最佳方法是什么,然后创建它并将其作为读/写打开?从我读到的,file = open('myfile.dat', 'rw')应该这样做,对吧?
它不适合我(Python 2.6.2),我想知道它是否是一个版本问题,或者不应该像那样或什么工作.
最重要的是,我只需要解决问题的方法.我很好奇其他的东西,但我需要的只是一个很好的方式来做开场部分.
更新:封闭目录可由用户和组写入,而不是其他(我在Linux系统上...所以权限775换句话说),确切的错误是:
IOError:没有这样的文件或目录.
可以说我有字符串abc_和abc2_。现在,通常在排序时,C#abc2_会在 后面abc_,留下结果:
abc_abc2_如果重要的话,我用它来排序:
var element = from c in elements
orderby c.elementName ascending
select c;
Run Code Online (Sandbox Code Playgroud)
我怎样才能改变这个?我希望 abc_ 排在最后。反转不是一个选项,因为列表包含两个以上的元素。
似乎在EF4中默认启用了延迟加载.至少,在我的项目中,我可以看到它的价值
dataContext.ContextOptions.LazyLoadingEnabled
Run Code Online (Sandbox Code Playgroud)
默认情况下为true.我不想延迟加载,我不想写:
dataContext.ContextOptions.LazyLoadingEnabled = false;
Run Code Online (Sandbox Code Playgroud)
每次我得到一个新的背景.那么有没有办法在整个项目中默认关闭它?
我正在使用WPF Shell集成库来创建我的wpf应用程序的自定义chrome.一切都很好,但是当最大化应用程序时,屏幕外有6或7个像素.
这是我正在使用的代码:
<Style TargetType="{x:Type local:MainWindow}">
<Setter Property="shell:WindowChrome.WindowChrome">
<Setter.Value>
<shell:WindowChrome
ResizeBorderThickness="6"
CaptionHeight="10"
CornerRadius="0"
GlassFrameThickness="1"/>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MainWindow}">
<Grid>
<Border BorderThickness="1" BorderBrush="#389FD1" Background="#389FD1">
<ContentPresenter Margin="0,22,0,0" Content="{TemplateBinding Content}"/>
</Border>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" >
<TextBlock Text="{Binding NombreUsuario}" Foreground="White" Margin="5,5,20,5" Opacity=".8" />
<Button Style="{StaticResource ImageButton}" Height="20" Width="20" Margin="0" Click="WindowMinimize" shell:WindowChrome.IsHitTestVisibleInChrome="True">
<Image Height="10" Width="10" Source="/Resources/Images/minimize.png" />
</Button>
<Button Style="{StaticResource ImageButton}" Height="20" Width="20" Margin="0" Click="WindowMaximizeRestore" shell:WindowChrome.IsHitTestVisibleInChrome="True" >
<Image Height="10" Width="10" Source="/Resources/Images/maximize.png" />
</Button>
<Button Style="{StaticResource ImageButton}" Height="20" Width="20" …Run Code Online (Sandbox Code Playgroud) c# ×3
sorting ×2
.net ×1
.net-4.0 ×1
algorithm ×1
class ×1
clr ×1
command-line ×1
cons ×1
file-io ×1
generics ×1
iphone ×1
iso-prolog ×1
lazy-loading ×1
linq ×1
linux ×1
mergesort ×1
objective-c ×1
pipe ×1
prolog ×1
python ×1
svn ×1
tortoisesvn ×1
wpf ×1
xcode ×1