23/09/12 11:18:20.04 VdHLMOad.net
>>287
現実の使われ方はどちらかしかない
(1)毎回値が変わる
値が変わるのだからStringを使えばよくて値が変わるのだからcloneは出て来ない
(2)毎回値が同じ
値がずっと同じならば&'static strを使えばよくてcloneは出て来ない
後者にする場合の具体的なコード変更点はこうなる
let j: String = 略;
let j: &'static str = j.leak();
for _i in 0..2 {
test_client(j)?;
ずっと同じ値を使い続けるならリークさせてもよいわけでStringを&'static strへ安全に変換できる
あとは呼び出し関数側も&'static strに変える
fn test_client(j: &'static str) -> Result<(), Box<dyn Error>> {