Bjarne Stroustrup,在他的书“The C ++ Programming Language”第2章第23页(pdf第34页)的第3版(online)中,在一个片段范例中,定义了函数let arr = [{ id: 1, name: "John" }, { id: 2, name: "Doe" }];
let item = arr.find((x) => x.id === 2);
item = Object.assign({}, { id: 3, name: "Do" });
console.log(arr); // the array is not changed!
let item2 = arr.find((x) => x.id === 2);
Object.assign(item2, { id: 3, name: "Do" });
console.log(arr); // the array is changed!
。为什么他不只是使用已经包含在标准库中的那个?
答案 0 :(得分:7)
因为sqrt
是'好样式'程序功能的示例。它接受输入,处理它并返回结果。
这本书并不是说你应该自己编写,或者从书中复制定义(完全没有完全实现)。这本书也没有证明如何计算平方根。它描述了程序编程中函数的目的(或者我的解释)。
答案 1 :(得分:0)
如果您正在考虑编写自己的sqrt(),请查看一些源代码,例如我在Google上找到的第一个源代码:
https://opensource.apple.com/source/Libm/Libm-92/ppc.subproj/sqrt.c
ACCU的2016年10月Overload杂志有一篇文章' Eight Rooty Pieces'
https://accu.org/index.php/journals/2294
我发现bogosqrt()解决方案特别有趣。