草庐IT

constness

全部标签

flutter - 在 Flutter 中处理 Stateful 小部件后,const 实例会保留在内存中吗?

一个const变量只会被创建一次。当我尝试创建相同的变量时,将返回旧变量。因此,不会发生新的内存分配。例如,如果我创建constIcon(Icons.add)并稍后尝试在另一个类中使用constIcon(Icons.add),旧的将被退回。但我的问题是:如果我在有状态小部件中使用constIcon(Icons.add),即使在有状态小部件被释放后,这种内存分配是否会永远存在? 最佳答案 是的,使用const创建的实例永远不会被垃圾回收。实例实际上是在编译时创建并存在于二进制文件中。 关于

dart - Flutter 中的 final/const 热潮是怎么回事?

Java有final和Dart,但据我所知,大多数Java人一直避免使用它,因为它会降低代码的可读性。例如,final一直用在class常量如publicstaticfinalint中,但大多数人避免在方法变量中使用它,因为它只是被许多开发人员视为“过度的代码正确性”,添加到样板代码中。C++也有const并且它可能会为之疯狂:char**const*constx//declarexasconstpointertoconstpointertopointertochar现在我开始学习Flutter,我看到final和const到处都是。这些真的有必要吗,就像他们说的那样:Fieldsin

dart - 带有 const 关键字的 flutter 变量

这个问题在这里已经有了答案:Whatcolorsystemdoesflutteruseandwhydoweuse`constColor`insteadof`newColor`(2个回答)关闭4年前。在Flutter文档的“编写您的第一个应用程序”教程中,第4步标题为“第4步:创建无限滚动ListView”,要求您创建2个变量,此处显示:classRandomWordsStateextendsState{final_suggestions=[];final_biggerFont=constTextStyle(fontSize:18.0);...}为什么在第3行使用const关键字?我来自

Kotlin:为什么编译器需要 `const` 修饰符?

在Kotlin中有:val-只读属性constval-编译时常量来自documentation:Compile-TimeConstantsPropertiesthevalueofwhichisknownatcompiletimecanbemarkedascompiletimeconstantsusingtheconstmodifier.Suchpropertiesneedtofulfillthefollowingrequirements:Top-levelormemberofanobjectInitializedwithavalueoftypeStringoraprimitivetyp

kotlin - kotlin中的java静态最终: Const 'val' initializer should be a constant value

在Java中,我们可以这样做:publicclassTestA{publicstaticfinalbooleanflag=true;publicstaticfinalStringstr=flag?"A":"B";//ok}但在Kotlin中不能classTestA{companionobject{constvalflag=trueconstvalstr=if(flag)"A"else"B"//err:Const'val'initializershouldbeaconstantvaluevalstr2=if(flag)"A"else"B"//ok,butnotequals[publics

java - 来自 Java 类名的 Kotlin 中的静态 const

我通常在Java中有这个:packagesome.package;publicclassClz{publicstaticfinalStringACTION_DIVE=Clz.class.getName()+".action.DIVE";}可从该类外部以Clz.ACTION_DIVE的形式访问,其值为"some.package.Clz.action.DIVE"。如何在Kotlin类Clz中执行相同的操作,以便可以从外部Java类以相同的方式访问它?我尝试了以下方法,但它没有编译,因为它不是常量:packagesome.packageobjectClz{constvalACTION_DIV

kotlin - 编译时常量(const val)可以表达什么?

编译时常量的文档列出了属性需要满足的三个要求,才能将其声明为constval。它们是:对象的顶级或成员使用String类型或原始类型的值初始化没有自定义getter“无自定义getter”要求让我相信我不能在常量声明中使用任何函数,但事实似乎并非如此。这些编译:constvalbitmask=(5shl3)+2constvalaComputedString="Hello${0x57.toChar()}orld${((1shl5)or1).toChar()}"constvalcomparedInt=5.compareTo(6)constvalcomparedString="Hello".

c++ - 如何在 VS2008 中指定 64 位 unsigned int const 0x8000000000000000?

我读到了Microsoft特定的整数常量后缀“i64”。我想做一个无符号转换到一个ULONGLONG。ULONGLONGbigNum64=​​0x800000000000000i64>>myval;在普通的C语言中,我会使用后缀“U”,例如类似的32位操作将是ULONGbigNum32=0x80000000U>>myval;我不希望2的补码扩展通过高位传播。我想要一个64位常量数的无符号移位。我认为我的第一个语句将进行SIGNED右移。我尝试了0x800000000000000i64U和0x800000000000000u64但出现编译器错误。 最佳答案

c++ - 为什么在传递给另一个对象时调用 const 对象上的 std::move 会调用复制构造函数?

为什么在const对象上调用std::move在传递给另一个对象时会调用复制构造函数?具体代码#includestructFoo{Foo()=default;Foo(Foo&&x){std::cout编译失败:g++-std=c++14test07.cpp-otest07test07.cpp:Infunction'intmain()':test07.cpp:10:36:error:useofdeletedfunction'Foo::Foo(constFoo&)'Fooconstx;Fooy(std::move(x));^test07.cpp:6:5:note:declaredhereF

c++ - 为什么会这样编译?期待 "cannot assign a constant to a non-const reference"

面试官给我看了这样的代码,问我是否可以编译,并给出我的推理。我非常肯定地告诉他它不会编译,因为10是一个常量,你不能将一个常量分配给一个非常量引用(比如int&b=10不会编译),而且,_a是一个临时变量,它也是再次考虑const,您不能使用非const引用来引用const变量。然而,当我回到家后,我惊讶地发现它可以完美地与所有可能的编译器一起编译。另外,我没有得到这份工作。我的哪一部分理解错了?classA{int&a;public:A(int_a):a(_a){}};intmain(){Aa(10);} 最佳答案 此代码没有“分