rust中的宽松与严格的理解
宽松:
- 宽松的意思是指,使用值时受到的限制更少,更宽松意味着,创建值时则受到的限制更多
例如:实现了Copy trait的类型,可以方便的进行赋值,借用,传递等操作,不需要考虑所有权的问题。
但是创建值时要求所有字段都实现了Copy trait的struct才能实现Copy trait。
例如:实现了Eq trait的类型,可以方便的进行比较操作, 不需要考虑值是否具有一个可比较的内部状态。
但是创建值时要求涉及的值都存在一个逻辑上的相等关系。
严格:
- 严格的意思是指,使用值时受到的限制更多,更严格意味着,创建值时则受到的限制更少
- 例如:仅实现了Clone trait的类型,在进行赋值,借用,传递等操作时,需要考虑所有权的问题,创建值时不要求具体字段的类型