我很好奇。
这段代码中def get_review(self, obj):
return Review.objects.filter(product_id=obj.product.id).count()
的含义是什么
[+
答案 0 :(得分:3)
将字符串更改为整数/数字。
例如:
如果有“ 60”。这是一个字符串,但是如果在其前面添加+
。现在是数字:60
在您的代码中,params.get('productId')
返回字符串,您可能需要它作为数字。它的确很短,但是只能将用字符串包装的数字转换为数字,而不是将“ 1”转换为1。
此外,[+
。第一个括号是用于基于对象的索引或元素/属性访问数组元素的开括号。例如,products[5]
。
这也称为Unary plus (+)
,
+false // 0
+‘123’ // 123
+0xBABE // 47806 (Hexadecimal)
+null // 0
+function(val) {return val } // NaN
有一篇详细的文章,如果您有兴趣阅读更多文章:
https://medium.com/@nikjohn/cast-to-number-in-javascript-using-the-unary-operator-f4ca67c792ce
答案 1 :(得分:1)
这里与Angular没有任何关系。
这是Javascript的概念,基本上它将值更改为数字类型(格式)。
在路由中传递参数时,默认情况下它为字符串格式,为了接受整数格式的参数,通常请遵循此方法。
例如-
new Date() // output Wed Sep 25 2019 00:35:05 GMT+0530 (India Standard Time)
+new Date() // output 1569351921895
答案 2 :(得分:1)
[+
本身并不意味着什么,它是将两个独立的东西组合在一起的。
关键部分是+params.get('productId')
,表示“获取productId的值并将其强制为数字值”。例如,+"1"
将成为数字而不是字符串的1,而+"foo"
将成为NaN。
然后[
只是下标符号的开头。
例如,如果productId为"1"
,则它将减少为products[1]
。
答案 3 :(得分:0)
ngOnInit() {
this.route.paramMap.subscribe(params => {
this.product = products[+params.get('productId')]; // here [+params.get(productIs) ] returns you number with use of + operator and [+ means starting a bracket to map the array.
});
}
希望您现在能理解其中的含义。
答案 4 :(得分:0)
将值从一种数据类型隐式转换为另一种数据类型,在这种情况下,是从字符串转换为数字。
https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion