mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
string: update string.repeat
behavior
Panic if a repeat count is negative. Return an empty string if a repeat count is zero.
This commit is contained in:
parent
a485533dc9
commit
632a538eb3
@ -1251,7 +1251,11 @@ pub fn (s string) bytes() []byte {
|
||||
|
||||
// repeat returns a new string with a specified number of copies of the string it was called on.
|
||||
pub fn (s string) repeat(count int) string {
|
||||
if count <= 1 {
|
||||
if count < 0 {
|
||||
panic('string.repeat: count is negative: $count')
|
||||
} else if count == 0 {
|
||||
return ''
|
||||
} else if count == 1 {
|
||||
return s
|
||||
}
|
||||
mut ret := malloc(s.len * count + 1)
|
||||
|
@ -603,11 +603,15 @@ fn test_limit() {
|
||||
}
|
||||
|
||||
fn test_repeat() {
|
||||
s := 'V! '
|
||||
assert s.repeat(5) == 'V! V! V! V! V! '
|
||||
assert s.repeat(1) == s
|
||||
assert s.repeat(0) == s
|
||||
assert s.repeat(-1) == s
|
||||
s1 := 'V! '
|
||||
assert s1.repeat(5) == 'V! V! V! V! V! '
|
||||
assert s1.repeat(1) == s1
|
||||
assert s1.repeat(0) == ''
|
||||
s2 := ''
|
||||
assert s2.repeat(5) == s2
|
||||
assert s2.repeat(1) == s2
|
||||
assert s2.repeat(0) == s2
|
||||
// TODO Add test for negative values
|
||||
}
|
||||
|
||||
fn test_raw() {
|
||||
|
Loading…
Reference in New Issue
Block a user