我决定写一个素数发生器作为一个简单的例外.代码非常简单:
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位,而不是字节?也许我犯了一些愚蠢的错误,我不认为这会让它变得如此无效?
我有一个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) 我在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)
他们之间有什么区别吗?
我想将模块用作其他模块中引用的单例.它看起来像这样(这实际上不是我正在研究的代码,但我简化它以丢弃所有不相关的东西):
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中使用我不知道的单例模块:)
我应该更喜欢堆分配到堆分配.传递值更好(特别是如果你正在创建新对象 - 但同时,如果你通过基类返回,你的对象将被切片),或者至少通过引用而不是传递指针(尽管你不能创建引用向量).
我仔细阅读了所有这些内容,现在我觉得我对之前所了解的知之甚少.关于如何编写一个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) 在我的应用程序中,我希望用户拥有不同类型的通知项目(新闻)。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 …
当我想在已有上游分支的分支上推送更改时,这git push就是我所需要的。但是当当前没有上游分支时,我必须输入git push -u $BRANCH_NAME.
我一直在创建新分支(对于我处理的每一项功能,所以大约每两个小时左右创建一个)。我有时也会犯错别字。它变得令人恼火。如何创建一个会自动解析为git push或git push -u $BRANCH_NAME且不需要我输入分支名称的别名?
手头的任务非常简单 - 将NSTimeInterval转换为看起来像12:34:56的NSString(12小时34分56秒).
我正在开发的应用程序使用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
我需要一种使用户进入“设置”应用程序以禁用多任务手势的方法。我知道在iOS 8中,您可以通过Objective-C中的URL以编程方式启动“设置”应用程序:
NSURL * url = [NSURL URLWithString: UIApplicationOpenSettingsURLString];
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在Unity中获取此URL以与Application.OpenURL()一起使用
c# ×2
node.js ×2
objective-c ×2
arrays ×1
autorelease ×1
boolean ×1
c++ ×1
cocoa ×1
constructor ×1
declaration ×1
generics ×1
git ×1
git-alias ×1
git-push ×1
inheritance ×1
ios ×1
javascript ×1
launch ×1
nsstring ×1
primes ×1
python ×1
sequelize.js ×1
settings ×1
singleton ×1
sql ×1
time ×1
typeorm ×1
typescript ×1
variables ×1