fn change(a: &mut i32, b: &mut i32) {
let c = *a;
*a = *b;
*b = c;
}
fn main() {
let mut v = vec![1, 2, 3];
change(&mut v[0], &mut v[1]);
}
Run Code Online (Sandbox Code Playgroud)
当我编译上面的代码时,它有错误:
error[E0499]: cannot borrow `v` as mutable more than once at a time
--> src/main.rs:9:32
|
9 | change(&mut v[0], &mut v[1]);
| - ^ - first borrow ends here
| | |
| | second mutable borrow occurs here
| first mutable borrow occurs here …Run Code Online (Sandbox Code Playgroud) 这是一个代码示例。
Vue.component('button-counter', {
template: '<button v-on:click="emit_event">button</button>',
methods: {
emit_event: function () {
this.$emit('change', 'v1', 'v2', 'v3') // Here I emit multiple value
}
},
})
new Vue({
el: '#parent',
data: {
args: ""
},
methods: {
change: function (...args) {
this.args = args
console.log(args)
}
}
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.3/vue.common.js"></script>
<div id="parent">
{{ args }} <br />
<button-counter v-on:change="change(1234, $event)"></button-counter>
</div>
Run Code Online (Sandbox Code Playgroud)
从父组件,我想通过change()获取参数传递(在本示例中为1234),还需要子组件发出的每个值。我尝试使用$ event捕获子发射的值,但是$ event仅设置为第一个子发射的值(在此示例中为'v1')
有什么办法吗?我知道我可以发出一个数组来捕获多个值。但是某些库只是发出多个值。
这是上面示例的codepen。 https://codepen.io/anon/pen/MmLEqX?editors=1011
如何在运行时获取leiningen项目的根目录?
我的问题是我想将我的sqlite文件放在根目录下,并通过不同源文件的源代码访问它.
我不喜欢使用相对路径,所以我该怎么办?