< 返回版块

关于函数内部的匿名生命周期的问题

Daniel 发表于

题目如下:

https://play.rust-lang.org/?gist=d3eaa1cf5a4b76669ac3149ce595adb9&version=stable&mode=debug&edition=2015

convert_and_display涉及一个在函数内部用到的匿名的生命周期,内部用到的Record<'_>的'_与函数外部无关,调用时或许应该用convert_and_display::<for<'a> Record<'a>>(vector)这样的形式,但目前rust不支持这么做

所以目前只能传一个Vec的引用,有两个解法:

https://play.rust-lang.org/?gist=cfba74e88f13a2214c681a9fa486a7ca&version=stable&mode=debug&edition=2015

https://play.rust-lang.org/?gist=b4f7e73773dd74b07b403486b2154e9d&version=stable&mode=debug&edition=2015

评论区

123hc 2018-08-10T06:18:23.208197

为什么需要
convert_and_display::<for<'a> Record<'a>>(vector)这样的形式的函数, ,又没有返回值,移动vector到函数里(vector生命周期在函数作用域内),record引用vector的值,出了函数vector里面的内容被销毁,不可访问,所以应该借用(vector生命周期在函数作用域外)

1 共 1 评论, 共 1 页