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.
|
// 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 {
|
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
|
return s
|
||||||
}
|
}
|
||||||
mut ret := malloc(s.len * count + 1)
|
mut ret := malloc(s.len * count + 1)
|
||||||
|
@ -603,11 +603,15 @@ fn test_limit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn test_repeat() {
|
fn test_repeat() {
|
||||||
s := 'V! '
|
s1 := 'V! '
|
||||||
assert s.repeat(5) == 'V! V! V! V! V! '
|
assert s1.repeat(5) == 'V! V! V! V! V! '
|
||||||
assert s.repeat(1) == s
|
assert s1.repeat(1) == s1
|
||||||
assert s.repeat(0) == s
|
assert s1.repeat(0) == ''
|
||||||
assert s.repeat(-1) == s
|
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() {
|
fn test_raw() {
|
||||||
|
Loading…
Reference in New Issue
Block a user