草庐IT

ary_mutable

全部标签

ruby - 为什么 to_a 和 to_ary 在 Array 的子类中表现不同?

如果您有一个Array的子类X,那么执行X#to_a会返回一个数组对象,而执行X#to_ary会返回一个x对象。虽然我明白to_a的意思是“我可以变成一个数组”,而to_ary的意思是“我的行为像一个数组”,但我不明白为什么前者实现了类的改变,而后者则没有。此外,根据Liskov替换原则,返回Array的子类是否足以满足to_a的要求? 最佳答案 “因为这是它被定义的方式”就足够了吗?to_aReturnsself.IfcalledonasubclassofArray,convertsthereceivertoanArrayobje

c++ - 你什么时候使用过 C++ 'mutable' 关键字?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想要改进这个问题吗?通过editingthispost添加详细信息并澄清问题.关闭2年前。Improvethisquestion你什么时候使用过C++mutable关键字?为什么?我认为我从来没有使用过那个关键字。我知道它用于诸如缓存(或者可能是内存)之类的事情,但是您曾经需要在什么类别和条件下使用它? 最佳答案 有时我使用它来将互斥锁或其他线程同步原语标记为可变,以便通常标记为const的访问器/查询方法仍然可以锁定互斥锁。当您需要检测代码以进行调试或测试时,它

c++ - 你什么时候使用过 C++ 'mutable' 关键字?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想要改进这个问题吗?通过editingthispost添加详细信息并澄清问题.关闭2年前。Improvethisquestion你什么时候使用过C++mutable关键字?为什么?我认为我从来没有使用过那个关键字。我知道它用于诸如缓存(或者可能是内存)之类的事情,但是您曾经需要在什么类别和条件下使用它? 最佳答案 有时我使用它来将互斥锁或其他线程同步原语标记为可变,以便通常标记为const的访问器/查询方法仍然可以锁定互斥锁。当您需要检测代码以进行调试或测试时,它

c++ - 除了允许 const 函数修改变量之外, 'mutable' 关键字是否还有其他用途?

不久前,我遇到了一些使用mutable关键字标记类的成员变量的代码。据我所知,它只允许您在const方法中修改变量:classFoo{private:mutablebooldone_;public:voiddoSomething()const{...;done_=true;}};这是这个关键字的唯一用途,还是有更多的用处?从那以后,我在一个类中使用了这种技术,将boost::mutex标记为可变的,允许const函数出于线程安全的原因将其锁定,但是,老实说,感觉有点像hack。 最佳答案 它允许区分按位常量和逻辑常量。逻辑const

c++ - 除了允许 const 函数修改变量之外, 'mutable' 关键字是否还有其他用途?

不久前,我遇到了一些使用mutable关键字标记类的成员变量的代码。据我所知,它只允许您在const方法中修改变量:classFoo{private:mutablebooldone_;public:voiddoSomething()const{...;done_=true;}};这是这个关键字的唯一用途,还是有更多的用处?从那以后,我在一个类中使用了这种技术,将boost::mutex标记为可变的,允许const函数出于线程安全的原因将其锁定,但是,老实说,感觉有点像hack。 最佳答案 它允许区分按位常量和逻辑常量。逻辑const