From c14a385a8ada7973d122f44267f694f42028e766 Mon Sep 17 00:00:00 2001 From: "a.pivkin" Date: Sun, 28 Dec 2025 12:50:20 +0300 Subject: [PATCH] sadf --- book_with_bridge/func_in_func/go.mod | 3 ++ book_with_bridge/func_in_func/main.go | 50 +++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 book_with_bridge/func_in_func/go.mod create mode 100644 book_with_bridge/func_in_func/main.go diff --git a/book_with_bridge/func_in_func/go.mod b/book_with_bridge/func_in_func/go.mod new file mode 100644 index 0000000..371eb8f --- /dev/null +++ b/book_with_bridge/func_in_func/go.mod @@ -0,0 +1,3 @@ +module main + +go 1.25.5 diff --git a/book_with_bridge/func_in_func/main.go b/book_with_bridge/func_in_func/main.go new file mode 100644 index 0000000..deae5e2 --- /dev/null +++ b/book_with_bridge/func_in_func/main.go @@ -0,0 +1,50 @@ +package main + +import ( + "flag" + "fmt" +) + +func findSub(s, sub, repl string) (finStr string) { + if len(s) < len(sub) { + return s[:] + } + + found := false + currCount := 0 + newStr := "" + + if s[:len(sub)] == sub { + newStr = repl + currCount++ + found = true + // return + } else { + newStr = string(s[0]) + } + + var resStr string + + if found { + resStr = findSub(s[len(sub):], sub, repl) + } else { + resStr = findSub(s[1:],sub,repl) + } + + return newStr + resStr +} + +func expand(s,sub,repl string, f func(init string,sub string,repl string) string) string{ + res := f(s,sub,repl) + return res +} + +func main() { + str := flag.String("str", "lolkeklolkeklol", "Initital string") + sub := flag.String("sub", "kek", "substring to find") + repl := flag.String("repl", "puk", "String to replace with") + + // res := findSub(*str, *sub, *repl) + res := expand(*str,*sub,*repl,findSub) + fmt.Println(res) +}