在python中,据我所知,至少有3到4种方法来创建和初始化给定大小的列表:
简单循环append:
my_list = []
for i in range(50):
my_list.append(0)
Run Code Online (Sandbox Code Playgroud)
简单循环+=:
my_list = []
for i in range(50):
my_list += [0]
Run Code Online (Sandbox Code Playgroud)
列表理解:
my_list = [0 for i in range(50)]
Run Code Online (Sandbox Code Playgroud)
列表和整数乘法:
my_list = [0] * 50
Run Code Online (Sandbox Code Playgroud)
在这些例子中,我认为只有列表只有50个元素会有任何性能差异,但如果我需要一个包含一百万个元素的列表呢?使用xrange会有什么改进吗?哪个是在python中创建和初始化列表的首选/最快方法?
我目前正在VS2010中开发一个ASP.NET MVC3应用程序,而且我在使用@Url.Action帮助器时遇到了一些麻烦.我有一个ajax请求,我使用这个帮助器:
var url = '@Url.Action("Action", "Controler", new { a = "a", b = "b" })';
$.post(url).success(function(data) {
...
});
Run Code Online (Sandbox Code Playgroud)
问题是url此后的值是/Controller/Action?a=a&b=b,注意&路由值之间的值.这不起作用,但如果我这样做:
var url = '@Url.Action("Action", "Controler", new { a = "a", b = "b" })'.replace('amp;', '');
Run Code Online (Sandbox Code Playgroud)
它完美地工作!
我的行动是这样的:
public JsonResult Action(string a, string b)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我已经调试我的应用程序和动作被调用,甚至a就是"a",不过b是null.
这是期望的行为Url.Action吗?我不这么认为.请帮帮我,我做错了什么?我应该在Url.Action通话中添加其他参数吗?提前致谢.
众所周知,C#classes对象被视为引用,那么当您将引用对象作为对方法的引用传递时会发生什么?说我们有:
public class A { ... }
Run Code Online (Sandbox Code Playgroud)
然后:
public void F(ref A a) { ... }
Run Code Online (Sandbox Code Playgroud)
编译器是否发现它a已经是一个引用类型并保持这种方式,或者他创建了一个对该对象的新引用?
如果我们有这样的事情怎么办:
public void F(ref A a)
{
F(ref a);
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中,除了显而易见之外StackOverflowException,编译器是否创建了对引用的引用...以引用a哪个是引用对象?
假设我们有两个具有冲突方法签名的接口:
interface IA
{
void F();
}
interface IB
{
int F();
}
Run Code Online (Sandbox Code Playgroud)
现在我们创建一个这样的类:
class Test : IA, IB
{
public void F() { ... }
int IB.F() { ... }
}
Run Code Online (Sandbox Code Playgroud)
名为的方法IB.F看起来像一个private方法,但是你可以这样做:
var t = new Test();
t.F(); //Calls public method F
((IB)t).F(); //Calls private method IB.F!!!
Run Code Online (Sandbox Code Playgroud)
所以我的问题是: C#编译器如何知道IB.F可以在类范围之外调用?
我猜这是IB.前缀,但查看IL代码,它只是作为一个private奇怪的签名方法出现.
我在SO看到了一些类似的问题,但没有一个人回答过我.我之前从未听说过CRON,而且我是Laravel的新手.我需要的是每周运行一次Task来对我的数据库(MySql)执行一些操作,比如每个星期天凌晨12:00.我怎么能实现这个目标?
这个问题已经折磨了我一段时间了.我已经读过这个话题,但似乎没有什么能清楚我的想法.我知道他们称视图模板和模型模型,我真正得到的不是控制器所在的位置.django称之为视图的东西在我看来更像是控制器的动作/方法/功能而不是控制器本身,但在我读到的任何地方,我发现假定的视图控制器等效.
我之前使用过MVC框架(ASP.NET MVC3,Ruby on Rails,PHP Laravel Framework),它们都将控制器定义为同一个东西:一堆与网站特定主题相关的功能,即用户帐户或类似的东西.我在这个描述和django功能之间找到的最好的等价物是应用程序,但当然我错了,因为大量的人和文档走向另一个方向.
有人可以帮帮我吗?我的心态是否有意义?我是否遗漏了必要的东西,然后我无法理解这些概念?
当我的应用程序尝试与Web服务通信时,我收到错误
(407)需要代理身份验证(ISA Server需要授权才能完成请求.拒绝访问Web代理筛选器.)
我看了几个主题,但我无法理解.我正在使用VB.net
假设我们有一个Foo类,我们想要实例化一个列表foos,我们可以这样做:
foo_list = [Foo()] * 3
Run Code Online (Sandbox Code Playgroud)
现在怎么办foo_list[0].x = 5?该声明将属性设置x到所有列表里面的实例!
当我发现它时,它引起了我的注意.问题是当我们创建这样的列表时,显然python将Foo首先创建实例,然后是列表实例,然后将相同的对象追加到它3次,但我真的希望它能做到这样的事情:
foo_list = [Foo() for i in range(3)]
Run Code Online (Sandbox Code Playgroud)
你也不是吗?嗯,现在我知道这个语法糖绝对不能用,因为我想用它,但那么,它用于什么?我唯一能想到的是创建一个像这样的初始大小的列表:list = [None] * 5对于我来说,在python的情况下这对我来说没有多大意义.
这个语法有没有其他真正有用的用例?
我知道在C++中,泛型实际上并不存在,但你可以使用它来模拟它template.构建代码时,编译器预处理代码并生成一个新代码,其中通用值替换为对象声明中指定的实际值,然后是真正编译的新代码.例如,假设我们有A如下类:
template<class T>
class A
{
T f();
};
Run Code Online (Sandbox Code Playgroud)
然后在我们的代码中的其他地方A<int> a;.编译的实际代码是:
class A
{
//Replaces T by int in the pre-processing
int f();
};
Run Code Online (Sandbox Code Playgroud)
在整个介绍之后,让我们谈谈.
我的问题是:
c# ×3
python ×2
asp.net-mvc ×1
c++ ×1
clr ×1
cron ×1
django ×1
generics ×1
interface ×1
laravel ×1
list ×1
proxy ×1
python-2.7 ×1
query-string ×1
razor ×1
reference ×1
task ×1
url ×1
vb.net ×1
web-services ×1