update: functional log parser
This commit is contained in:
53
advfuncs/new/01-intro/passfunc/main.go
Normal file
53
advfuncs/new/01-intro/passfunc/main.go
Normal file
@ -0,0 +1,53 @@
|
||||
// For more tutorials: https://blog.learngoprogramming.com
|
||||
//
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
func main() {
|
||||
s := "Func Values Are Awesome..."
|
||||
|
||||
// s = strings.Map(unicode.ToUpper, s)
|
||||
// s = strings.Map(unicode.ToLower, s)
|
||||
// s = strings.Map(excite, s)
|
||||
// s = strings.Map(calm, s)
|
||||
|
||||
// fmt.Printf("%T\n", strings.Map)
|
||||
s = mapx(calm, s)
|
||||
|
||||
fmt.Println(s)
|
||||
}
|
||||
|
||||
func mapx(mapping func(rune) rune, s string) string {
|
||||
var ns []rune
|
||||
|
||||
for _, r := range s {
|
||||
if r = mapping(r); r == -1 {
|
||||
continue
|
||||
}
|
||||
ns = append(ns, r)
|
||||
}
|
||||
return string(ns)
|
||||
}
|
||||
|
||||
func calm(r rune) rune {
|
||||
if unicode.IsPunct(r) {
|
||||
return -1
|
||||
}
|
||||
return unicode.ToLower(r)
|
||||
}
|
||||
|
||||
func excite(r rune) rune {
|
||||
if r == '.' {
|
||||
return '!'
|
||||
}
|
||||
return unicode.ToTitle(r)
|
||||
}
|
Reference in New Issue
Block a user