< 返回版块

hzqd 发表于 2019-09-15 13:19

大家好,我在写一个"正方形生成器"的函数,它接收一个参数n为正方形边长的长度,返回String类型。 比如:n = 4,则输出应为:

++++
++++
++++
++++

以下是我的代码:

fn generate_square(n: i32) -> String {
    "+".repeat((n * n) as usize) //got all "+"
        .split(&*"+".repeat(n as usize)).collect::<Vec<&str>>() //got empty, why?
        .join("\n").trim_end().to_string() // empty too
}

令我惊讶的是:String被.split()之后再collect的结果为空。这是为什么?

评论区

写评论
langzi.me 2019-09-16 21:11

对以下内容的回复:

搞错了 是split去掉分隔符了,因为+号都是分隔符, 就成空了。

btjoker 2019-09-15 14:36

第一次split后就空了, 你可以拆出来单独split打印

1 共 2 条评论, 1 页