像那样
enum Response {
@Descriptor("this is No")
No = 0,
@Descriptor("this is Yes")
Yes = 1,
}
Run Code Online (Sandbox Code Playgroud)
如何在打字稿中使用enum中的装饰器,我尝试了这段代码,但它没有用
export function Description(description:string){
return Reflect.metadata(descriptionMetadataKey, description);
}
Run Code Online (Sandbox Code Playgroud) <div id="app">
<input v-model="msg"/>
<p>{{ msg }}</p>
</div>
<script>
class A{
}
A.a = 1
new Vue({
el: '#app',
data: {
},
computed: {
msg: {
cache: false,
set: function(val){
A.a = val
},
get: function(){
return A.a
}
}
}
})
</script>
Run Code Online (Sandbox Code Playgroud)
vue 如何在 v-model 上使用 getter setter?我尝试在 v-model 上使用 getter 和 setter,但没有用。
我检查C数组可能在尾部有一些额外的字节.
有我的代码
int a = 5;
int test[] = {1,2,3,4};
int b = 5;
test[-1] = 11;
test[4] = 11;
cout << b << endl; // 11
cout << a << endl; // 5
Run Code Online (Sandbox Code Playgroud)
你可以在那里看到运行结果
的值b
是通过改变改变test[-1]
的值.但是,当我改变test[4]
价值时,价值a
不会改变;
我用gdb检查他们的地址,发现了
在g ++ 6.4.0中,a
减法地址的地址test[4]
是8字节
在clang ++ 3.8.1中,a
减法地址的地址test[4]
是4字节
所以,我很好奇为什么数组在尾部有一些字节?
感谢@Peter A.Schneider解释这个问题.它肯定是UB,但它只是一个实验性代码.这不是实际代码的讨论.
通常,运行时堆栈中的变量靠得很近.b
接近测试,但为什么'a'不接近'test + 3'.这是问题的关键.