草庐IT

constness

全部标签

javascript - 为什么 `Export Default Const`无效?

我看到以下内容很好:constTab=connect(mapState,mapDispatch)(Tabs);exportdefaultTab;但是,这是不正确的:exportdefaultconstTab=connect(mapState,mapDispatch)(Tabs);但这很好:exportdefaultTab=connect(mapState,mapDispatch)(Tabs);能否解释一下为什么const对exportdefault无效?这是不必要的添加吗?任何声明为exportdefault的东西都被假定为const之类的? 最佳答案

go - 从子包中的 main 导入 vars/consts

我在$GOPATH/dalu/myproject有一个Go项目,其中包含以下文件:main.go:packagemainimport"dalu/myproject/subpackage"varGVstring="World"funcmain(){subpackage.Hello()}subpackage/subpackage.go:packagesubpackageimport("fmt""dalu/myproject")funcHello(){//?fmt.Println("Hello"+GV)}奖金(如果可以的话):我尝试使用更多子包进行类似的操作,当尝试在main中导入一个子包时

c++ - 成员函数末尾的 const 是什么意思?

这个问题在这里已经有了答案:Meaningof'const'lastinafunctiondeclarationofaclass?(12个回答)关闭5年前。C++中的const关键字写在成员函数的末尾(参数列表之后)究竟是什么意思? 最佳答案 这意味着*this是该成员函数内部的const,即它不会改变对象。Thekeywordthisisaprvalueexpressionwhosevalueistheaddressoftheobjectforwhichthefunctioniscalled.Thetypeofthisinamem

c++ - 如何在构造函数中初始化 const 字段?

想象一下,我有一个C++类Foo和一个类Bar,它必须使用一个传递了Foo指针的构造函数来创建,并且该指针旨在在Bar实例生命周期中保持不可变。正确的做法是什么?事实上,我以为我可以像下面的代码那样写,但它不能编译..classFoo;classBar{public:Foo*constfoo;Bar(Foo*foo){this->foo=foo;}};classFoo{public:inta;};欢迎提出任何建议。 最佳答案 你需要在初始化列表中进行:Bar(Foo*_foo):foo(_foo){}(请注意,我重命名了传入变量以避

c++ - 会不会是 sizeof(T*) != sizeof(const T*)?

我正在和我的老板争论这件事。他们说“是的,他们可以与众不同。”sizeof(T*)!=sizeof(constT*)是否可能用于类型T? 最佳答案 不,它们不可能不同。对于足够不同的T1和T2,sizeof(T1*)可以不同于sizeof(T2*),但如果T2只是constT1,那么:3.9.2Compoundtypes[basic.compound]3[...]Pointerstocv-qualifiedandcv-unqualifiedversions(3.9.3)oflayout-compatibletypesshallhav

c++ - 为什么 std::map 没有 const 访问器?

std::map上[]运算符的声明如下:T&operator[](constkey_type&x);不是这个有什么原因吗?T&operator[](constkey_type&x);constT&operator[]const(constkey_type&x);因为当您需要在const方法中访问成员映射时,这将非常有用。 最佳答案 从C++11开始,有std::map::at提供const和non-const访问。与operator[]相比,如果元素不在map中,它将抛出std::out_of_range异常。

c++ - 如果您已经知道变量应该是常量,为什么还要使用关键字 const?

当变量的值不应该被修改时,我正在阅读的许多书籍都使用关键字const。除了向代码的读者说明如果您修改此变量可能会导致错误(您可以使用注释来执行此操作),为什么您需要该关键字成为任何编程语言的一部分?在我看来,如果您不想修改变量,那就不要。有人可以为我澄清一下吗? 最佳答案 Apartfromspecifyingtoreadersofthecodethatyoumaycauseerrorsifyoumodifythisvariable(youcanusecommentstodothis)不是“可能”;会导致你的程序出错。C++编译器将

c++ - 为什么我不能在一个类中有一个非整数静态 const 成员?

我注意到C++不会编译以下内容:classNo_Good{staticdoubleconstd=1.0;};但是,它会很高兴地允许将double更改为int、无符号或任何整数类型的变体:classHappy_Times{staticunsignedconstu=1;};我的解决方案是将其更改为:classNow_Good{staticdoubled(){return1.0;}};并认为编译器将足够聪明,可以在必要时内联...但这让我很好奇。为什么C++设计者允许我静态const一个int或unsigned,而不是一个double?编辑:我在WindowsXP上使用VisualStudi

c++ - const 和非 const 键有什么区别?

下面两行有什么区别?mapmap_data;mapmap_data; 最佳答案 int和constint是两种不同的类型。std::map和std::map同样是不同的类型。std::map的区别和std::map在某种程度上,类似于std::map之间的差异。和std::map;您会为每个map类型获得新的map类型。在非const在这种情况下,内部key类型是仍然非constint:std::map::key_type=>constintstd::map::key_type=>int但是,映射键在语义上是不可变的,并且所有允许直

c++ - 返回对对象的 const 引用而不是拷贝

在重构一些代码时,我遇到了一些返回std::string的getter方法。例如这样的事情:classfoo{private:std::stringname_;public:std::stringname(){returnname_;}};当然,getter会更好地返回conststd::string&?当前方法正在返回一个效率不高的拷贝。返回一个const引用会导致任何问题吗? 最佳答案 这可能导致问题的唯一方法是调用者存储引用,而不是复制字符串,并在对象被销毁后尝试使用它。像这样:foo*pFoo=newfoo;conststd