string: add map method

pull/5406/head
Swastik Baranwal 2020-06-17 15:56:55 +05:30 committed by GitHub
parent 5749add670
commit 0052ab71e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 0 deletions

View File

@ -1354,6 +1354,10 @@ pub fn (s string) fields() []string {
return s.replace('\t', ' ').split(' ')
}
pub fn (s string) map(func fn(byte) byte) string {
return string(s.bytes().map(func(it)))
}
// Allows multi-line strings to be formatted in a way that removes white-space
// before a delimeter. by default `|` is used.
// Note: the delimiter has to be a byte at this time. That means surrounding

View File

@ -742,6 +742,19 @@ fn test_double_quote_inter() {
assert '${a} ${b}' == "1 2"
}
fn test_string_map() {
a := 'Hello'.map(fn (b byte) byte {
return b + 1
})
assert a == 'Ifmmp'
assert 'foo'.map(foo) == r'\ee'
}
fn foo(b byte) byte {
return b - 10
}
fn test_split_into_lines() {
line_content := 'Line'
text_crlf := '${line_content}\r\n${line_content}\r\n${line_content}'