builtin.string: minor fixes in join() (#9952)
parent
581fe375cc
commit
feb60674b4
|
@ -1606,17 +1606,17 @@ pub fn (s string) after_char(dot byte) string {
|
||||||
return s[pos + 1..]
|
return s[pos + 1..]
|
||||||
}
|
}
|
||||||
|
|
||||||
// join joins a string array into a string using `del` delimiter.
|
// join joins a string array into a string using `sep` separator.
|
||||||
// Example: assert ['Hello','V'].join(' ') == 'Hello V'
|
// Example: assert ['Hello','V'].join(' ') == 'Hello V'
|
||||||
pub fn (a []string) join(del string) string {
|
pub fn (a []string) join(sep string) string {
|
||||||
if a.len == 0 {
|
if a.len == 0 {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
mut len := 0
|
mut len := 0
|
||||||
for val in a {
|
for val in a {
|
||||||
len += val.len + del.len
|
len += val.len + sep.len
|
||||||
}
|
}
|
||||||
len -= del.len
|
len -= sep.len
|
||||||
// Allocate enough memory
|
// Allocate enough memory
|
||||||
mut res := string{
|
mut res := string{
|
||||||
str: unsafe { malloc(len + 1) }
|
str: unsafe { malloc(len + 1) }
|
||||||
|
@ -1628,11 +1628,11 @@ pub fn (a []string) join(del string) string {
|
||||||
C.memcpy(res.str + idx, val.str, val.len)
|
C.memcpy(res.str + idx, val.str, val.len)
|
||||||
idx += val.len
|
idx += val.len
|
||||||
}
|
}
|
||||||
// Add del if it's not last
|
// Add sep if it's not last
|
||||||
if i != a.len - 1 {
|
if i != a.len - 1 {
|
||||||
unsafe {
|
unsafe {
|
||||||
C.memcpy(res.str + idx, del.str, del.len)
|
C.memcpy(res.str + idx, sep.str, sep.len)
|
||||||
idx += del.len
|
idx += sep.len
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue