文档 / 教程
06 · 所有权与借用
无 GC。按值传 string 即 move。&x 共享借用;mut &x 独占借用(x 须 mut)。
源码
@main
fn take(s string) {
println(s)
}
fn len_of(s &string) int {
<< s.len
}
fn append_bang(s &mut string) {
s.push_str("!")
}
fn main() int {
msg := "hello"
println(len_of(&msg))
println(msg)
mut owned := "hi"
append_bang(mut &owned)
println(owned)
take(owned)
// owned 已 move,不可再使用
<< 0
}编译(examples 仓库根,使用已安装的 xu):
xu run examples/06_ownership_borrow/main.xu
# 或:xu build examples/06_ownership_borrow/main.xu
# mac/linux 默认写出 ./main ;Windows 为 ./main.exe
在独立的 examples 仓库根执行;源码位于 examples/。