1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

builtin.string: minor fixes in join() (#9952)

This commit is contained in:
Mark 2021-05-02 17:31:47 +01:00 committed by GitHub
parent 581fe375cc
commit feb60674b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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
} }
} }
} }