小编Max*_*kov的帖子

C#中大bool数组的问题

我决定写一个素数发生器作为一个简单的例外.代码非常简单:

static void generatePrimes (long min, long max)
    {

        bool[] prime = new bool[max + 1];

        for (long i=2; i<max+1; i++)
            prime [i] = true;

        for (long i=2; i<max+1; i++) {
            if (prime [i]) {
                if (i>=min)
                    Console.WriteLine (i);
                for (long j=i*2; j<max+1; j+=i)
                    prime [j] = false;
            }
        }

        Console.WriteLine ();

    }
Run Code Online (Sandbox Code Playgroud)

输入就像1..10000一样好用.但是,在max = 1000000000左右,它开始工作得非常慢; 此外,mono需要大约1Gb的内存.对我来说,这似乎有点奇怪:bool [1000000000]不应该占用1000000000位,而不是字节?也许我犯了一些愚蠢的错误,我不认为这会让它变得如此无效?

c# arrays primes boolean

4
推荐指数
1
解决办法
1314
查看次数

为什么父母的构造函数被调用?

我有一个asbtract类的例子.另一个泛型类UsesExample使用它作为约束,使用new()约束.稍后,我创建一个子类到Example类,ExampleChild,并将其与泛型类一起使用.但不知何故,当泛型类中的代码尝试创建新副本时,它不会调用子类中的构造函数,而是调用父类中的构造函数.为什么会这样?这是代码:

abstract class Example {

    public Example() {
        throw new NotImplementedException ("You must implement it in the subclass!");
    }

}

class ExampleChild : Example {

    public ExampleChild() {
        // here's the code that I want to be invoken
    }

}

class UsesExample<T> where T : Example, new() {

    public doStuff() {
        new T();
    }

}

class MainClass {

    public static void Main(string[] args) {

        UsesExample<ExampleChild> worker = new UsesExample<ExampleChild>();
        worker.doStuff();

    }

}
Run Code Online (Sandbox Code Playgroud)

c# generics inheritance constructor

4
推荐指数
2
解决办法
230
查看次数

“迁移:创建”和“迁移:生成”有什么区别?

我在sequelize上运行help命令,发现有两个不同的命令具有相同的描述:

$ sequelize help:migration:create

Sequelize [Node: 6.9.5, CLI: 2.5.1, ORM: 3.8.0, mysql: 2.5.0]

Loaded configuration file "config\config.json".
Using environment "development".
COMMANDS
    sequelize migration:create   -- Generates a new migration file.
    sequelize migration:generate -- Generates a new migration file.
Run Code Online (Sandbox Code Playgroud)

他们之间有什么区别吗?

javascript node.js sequelize.js

4
推荐指数
1
解决办法
1590
查看次数

如何确定变量是否在Python中声明?

我想将模块用作其他模块中引用的单例.它看起来像这样(这实际上不是我正在研究的代码,但我简化它以丢弃所有不相关的东西):

main.py

import singleton
import printer

def main():
   singleton.Init(1,2)
   printer.Print()

if __name__ == '__main__':
   pass
Run Code Online (Sandbox Code Playgroud)

singleton.py

variable1 = ''
variable2 = ''

def Init(var1, var2)
   variable1 = var1
   variable2 = var2
Run Code Online (Sandbox Code Playgroud)

printer.py

import singleton

def Print()
   print singleton.variable1
   print singleton.variable2
Run Code Online (Sandbox Code Playgroud)

我希望得到输出1/2,但相反得到空的空间.据我所知,在将singleton导入print.py模块后,变量再次初始化.

所以我认为我必须在singleton.py之前检查它们是否已初具化:

if not (variable1):
   variable1 = ''
if not (variable2)
   variable2 = ''
Run Code Online (Sandbox Code Playgroud)

但我不知道该怎么做.或者有更好的方法在python中使用我不知道的单例模块:)

python variables singleton declaration

3
推荐指数
1
解决办法
285
查看次数

如何正确实现C++中只有抽象基类知道的对象列表的创建(和分配)?

我应该更喜欢堆分配到堆分配.传递值更好(特别是如果你正在创建新对象 - 但同时,如果你通过基类返回,你的对象将被切片),或者至少通过引用而不是传递指针(尽管你不能创建引用向量).

我仔细阅读了所有这些内容,现在我觉得我对之前所了解的知之甚少.关于如何编写一个IMO应该是微不足道的代码,我并没有丝毫想法,同时尊重所有这些精心编写和思考的答案中提到的最佳实践.

这是我想要实现的.(我不假装它是正确的C++,但我只是想传达这个想法).

// This thing is purely virtual!
class BaseStuff { }

// Has important behaviour and data members that shouldn't be sliced
class SomeStuff : public BaseStuff { }

// Don't slice me plz
class OtherStuff : public BaseStuff { }

BaseStuff CreateStuff()
{
    // falls a set of rules to create SomeStuff or OtherStuff instance based on phase of the moon
}

std::vector<BaseStuff> CreateListOfStuff()
{ …
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
1
解决办法
59
查看次数

TypeORM 中具有关系目标基类的单表继承

在我的应用程序中,我希望用户拥有不同类型的通知项目(新闻)。User并且NewsItem必须具有一对多关系,而且NewsItem只是不同类型的实际新闻项的基类。

这是我的基NewsItem类:

@Entity()
@TableInheritance({ column: { type: "varchar", name: "type"}})
export class NewsItem {

    @PrimaryGeneratedColumn()
    id: number;

    @ManyToOne(type => User, user => user.news)
    receiver: Promise<User>;

}
Run Code Online (Sandbox Code Playgroud)

这是User它所附的:

@Entity()
export class User {

    @PrimaryGeneratedColumn()
    id: number;

    // (a lot of irrelevant stuff removed)

    @OneToMany(type => NewsItem, newsItem => newsItem.receiver)
    news: Promise<NewsItem[]>;

}
Run Code Online (Sandbox Code Playgroud)

这是一个具体新闻的例子:

@ChildEntity()
export class ConcreteNewsItem extends NewsItem {

    @Column()
    someData: number;
}
Run Code Online (Sandbox Code Playgroud)

从文档来看,这一切似乎都很简单。然而,这是我不明白的:如何遍历用户的news,检查每个用户的确切类型,并获取每个用户的具体新闻项类型的对象?

据我了解,TypeORM 将创建一个在表type …

sql single-table-inheritance node.js typescript typeorm

3
推荐指数
1
解决办法
4950
查看次数

同时为 `git push -u origin $BRANCH_NAME` 和 `git push` 设置一个更快的别名

当我想在已有上游分支的分支上推送更改时,这git push就是我所需要的。但是当当前没有上游分支时,我必须输入git push -u $BRANCH_NAME.

我一直在创建新分支(对于我处理的每一项功能,所以大约每两个小时左右创建一个)。我有时也会犯错别字。它变得令人恼火。如何创建一个会自动解析为git pushgit push -u $BRANCH_NAME且不需要我输入分支名称的别名?

git git-push git-alias

3
推荐指数
1
解决办法
1750
查看次数

以00:00:00时钟格式将NSTimeInterval转换为NSString

手头的任务非常简单 - 将NSTimeInterval转换为看起来像12:34:56的NSString(12小时34分56秒).

time cocoa objective-c nsstring nstimeinterval

2
推荐指数
1
解决办法
2841
查看次数

ARC的内存占用空间很大

我正在开发的应用程序使用ARC.我希望它处理大型文件,因此我不是整个文件加载,而是使用NSFileHandle readDataOfLength方法加载数据块.它发生在循环中,重复直到整个文件被处理:

- (NSString*)doStuff { // called with NSInvocationOperation

    // now we open the file itself

    NSFileHandle *fileHandle =
    [NSFileHandle fileHandleForReadingFromURL:self.path
                                        error:nil];

    ...

    BOOL done = NO;
    while(!done) {

        NSData *fileData = [fileHandle readDataOfLength: CHUNK_SIZE];

        ...

        if ( [fileData length] == 0 ) done = YES;

        ...

    }

    ...

}
Run Code Online (Sandbox Code Playgroud)

根据剖析器,没有内存泄漏; 但是,我的应用程序在处理文件时会占用大量内存.我猜 - 自动释放只在我处理完文件后才出现.我可以修改它而无需切换到手动内存管理吗?

memory-management objective-c autorelease automatic-ref-counting

2
推荐指数
1
解决办法
1152
查看次数

在Unity iOS上打开设置应用程序

我需要一种使用户进入“设置”应用程序以禁用多任务手势的方法。我知道在iOS 8中,您可以通过Objective-C中的URL以编程方式启动“设置”应用程序:

NSURL * url = [NSURL URLWithString: UIApplicationOpenSettingsURLString];
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何在Unity中获取此URL以与Application.OpenURL()一起使用

settings launch unity-game-engine ios

2
推荐指数
1
解决办法
4440
查看次数