我正在学习c ++,我们的教授希望我们了解我们学到的东西是否会/不会在其他语言中起作用。
以下代码将以python打印出来吗 “我爱我的狗……”(对于每个数组实例) 和 “我最喜欢的狗是杰克” 还是只是后者?
List<PlanRecoveryStrategy> deletePlanRecoveryStrategies(List<PlanRecoveryStrategies> listToDelete);
在c ++中,如果未声明pets = ['flufffy', "jack", 'larry']
for a in pets:
print "I love my dog %s" % a
print "My favourite dog is %s" % pets[1]
,则如果mi正确,则循环将无法正确编译/运行。
答案 0 :(得分:2)
在Python中,赋值包括隐式声明(只是声明仅表示“名称存在”,并且不强制使用静态类型)。
for a in pets:
可以正常工作(因此,您期望的所有行都会被打印出来,无论您出于何种原因,都不会跳过该循环),因为for
循环会分配给a
,并隐式声明。不同于C ++,需要声明std::string a
(在循环之前或循环中)或auto a
(在循环中)来声明a
存在已知类型
需要明确的是,C ++仅需要声明a
(并且可以在循环本身中完成,例如for (const auto& a : pets) {
),而不具体是初始化,以使循环正常工作。