0
我正在做一些修改为即将到来的测试和过这个问题就来了:为什么只是参考而不是价值?
在标记方案的回答说:
不过,我虽然这将是反过来。我认为FoodList会因为食物改变而被价值和食物所通过。你能解释为什么它是相反的吗?
更新:答案可能是错误的,标记方案中有许多错误。
我正在做一些修改为即将到来的测试和过这个问题就来了:为什么只是参考而不是价值?
在标记方案的回答说:
不过,我虽然这将是反过来。我认为FoodList会因为食物改变而被价值和食物所通过。你能解释为什么它是相反的吗?
更新:答案可能是错误的,标记方案中有许多错误。
我唯一的解释是作者混淆了“按价值”和“通过参考”。
但是,如果性能起到任何作用,则应该将FoodList
作为参考进行传递,因为复制引用通常要比复制整个字符串便宜。一些像C++这样的语言可以让你将参考标记为常量。这将阻止子程序修改其值。
此外,在大多数编程语言中,子程序称为函数并具有返回值。将参数仅用于输入以及子程序输出的返回值是一种很好的做法。 (要知道为什么,这是很好的做法,搜索术语“副作用”和“引用透明”。)
在C++函数可以声明如下:
std::list<std::string> Make_List(const std::string& foodList);