合并最新的学习代码

This commit is contained in:
wandoubaba 2024-09-25 16:32:37 +08:00
parent 19de2f187d
commit e715d9278a
22 changed files with 426 additions and 0 deletions

4
.idea/go.iml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="Go" enabled="true" />
</module>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

72
.idea/workspace.xml Normal file
View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="ALL" />
</component>
<component name="ChangeListManager">
<list default="true" id="495445f0-1eca-47b4-946d-d66cf898be6c" name="Changes" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Go File" />
</list>
</option>
</component>
<component name="GOROOT" url="file:///usr/local/go" />
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 7
}</component>
<component name="ProjectId" id="2lF3CQOFOFWwbyYijFatmfemAXC" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"DefaultGoTemplateProperty": "Go File",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.go.formatter.settings.were.checked": "true",
"RunOnceActivity.go.migrated.go.modules.settings": "true",
"RunOnceActivity.go.modules.automatic.dependencies.download": "true",
"RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true",
"go.import.settings.migrated": "true",
"go.sdk.automatically.set": "true",
"last_opened_file_path": "/Users/chenqiang/workspace/study/go",
"node.js.detected.package.eslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "preferences.pluginManager"
}
}]]></component>
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-gosdk-33c477a475b1-b97fc8a1e17c-org.jetbrains.plugins.go.sharedIndexes.bundled-GO-241.14494.238" />
<option value="bundled-js-predefined-1d06a55b98c1-74d2a5396914-JavaScript-GO-241.14494.238" />
</set>
</attachedChunks>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="VgoProject">
<settings-migrated>true</settings-migrated>
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="DlvLineBreakpoint">
<url>file://$PROJECT_DIR$/tour/tour.go</url>
<line>6</line>
<option name="timeStamp" value="1" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
</project>

3
flysnow/ch02/go.mod Normal file
View File

@ -0,0 +1,3 @@
module flysnow/ch02
go 1.23.0

52
flysnow/ch02/main.go Normal file
View File

@ -0,0 +1,52 @@
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
var f32 float32 = 2.2
var f64 float64 = 10.2345
fmt.Println("f32 is", f32, ", f64 is", f64)
var bf bool = false
var bt bool = true
fmt.Println("bf is", bf, ", bt is", bt)
var s1 string = "Hello"
var s2 string = "世界"
fmt.Println("s1 is", s1, ", s2 is", s2)
fmt.Println("s1+s2=", s1+s2)
// 零值
var zi int
var zf float64
var zb bool
var zs string
fmt.Println("zi is", zi, ", zf is", zf, "zb is", zb, ", zs is", zs)
i := 3.14
pi := &i
fmt.Println(*pi)
// 常量iota
const (
one = iota + 1
two
three
four
)
fmt.Println(one, two, three, four)
// string
j := 5
i2s := strconv.Itoa(j)
s2i, err := strconv.Atoi(i2s)
fmt.Println(i2s, s2i, err)
f2s := strconv.FormatFloat(f64, 'e', -1, 32)
fmt.Println(f2s)
// 判断字符串开头是否为“H”
fmt.Println(strings.HasPrefix(f2s, "H"))
// 查找字符串
fmt.Println(strings.Index(f2s, "e"))
// 全部转大写
fmt.Println(strings.ToUpper(f2s))
}

3
flysnow/ch03/go.mod Normal file
View File

@ -0,0 +1,3 @@
module flysnow/ch03
go 1.23.0

74
flysnow/ch03/main.go Normal file
View File

@ -0,0 +1,74 @@
package main
import "fmt"
func main() {
i := 10
if i > 10 {
fmt.Println("i > 10")
} else {
fmt.Println("i <= 10")
}
i = 6
if i > 10 {
fmt.Println("i > 10")
} else if i > 5 && i <= 10 {
fmt.Println("5 < i <= 10")
} else {
fmt.Println("i <= 5")
}
switch {
case i > 10:
fmt.Println("i > 10")
case i > 5 && i <= 10:
fmt.Println("5 < i <= 10")
default:
fmt.Println("i <= 5")
}
switch j := 1; j {
case 1:
fallthrough
case 2:
fmt.Println(j)
default:
fmt.Println("没有匹配")
}
sum := 0
for i := 1; i <= 100; i++ {
sum += i
}
fmt.Println(sum)
sum = 0
i = 1
for i <= 100 {
sum += i
i++
}
fmt.Println("the sum is", sum)
sum = 0
i = 1
for {
sum += i
i++
if i > 100 {
break
}
}
fmt.Println("the sum is", sum)
sum = 0
for i := 0; i < 100; i++ {
if i%2 != 0 {
continue
}
sum += i
}
fmt.Println("the sum is", sum)
}

3
flysnow/ch04/go.mod Normal file
View File

@ -0,0 +1,3 @@
module flysnow/ch04
go 1.23.0

59
flysnow/ch04/main.go Normal file
View File

@ -0,0 +1,59 @@
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
array := []string{"a", "b", "c", "d", "e"}
fmt.Println(array)
for i := 0; i < len(array); i++ {
fmt.Printf("数组索引: %d对应值: %s\n", i, array[i])
}
for i, v := range array {
fmt.Printf("数组索引: %d, 对应值: %s\n", i, v)
}
for _, v := range array {
fmt.Printf("数组值: %s\n", v)
}
// 切片slice
slice := array[2:4] // 包含索引2不包含索引4
fmt.Println(slice)
slice1 := make([]string, 4)
slice2 := make([]string, 4, 8)
slice2 = append(slice1, "f")
fmt.Println(slice2)
// 映射map
nameAgeMap := make(map[string]int)
nameAgeMap["Snowfay"] = 20
fmt.Println(nameAgeMap)
age := nameAgeMap["Snowfay"]
fmt.Println(age)
age, ok := nameAgeMap["Snowfay"]
if ok {
fmt.Println(age)
} else {
fmt.Println(ok)
}
nameAgeMap["飞雪无情"] = 50
fmt.Println(nameAgeMap)
delete(nameAgeMap, "飞雪无情")
fmt.Println(nameAgeMap)
nameAgeMap["Hello"] = 22
nameAgeMap["Allen"] = 33
for k, v := range nameAgeMap {
fmt.Println("Key is", k, "Value is", v)
}
fmt.Println(len(nameAgeMap))
// string
s := "Hello飞雪无情"
bs := []byte(s)
fmt.Println(bs)
fmt.Println(s[0], s[1], s[15])
fmt.Println(len(s))
fmt.Println(utf8.RuneCountInString(s))
for i, r := range s {
fmt.Printf("%d %c\n", i, r)
}
}

3
flysnow/ch05/go.mod Normal file
View File

@ -0,0 +1,3 @@
module flysnow/ch05
go 1.23.0

70
flysnow/ch05/main.go Normal file
View File

@ -0,0 +1,70 @@
package main
import (
"errors"
"fmt"
)
type Age uint
func (age Age) String() {
fmt.Println("the age is", age)
}
func (age *Age) Modify() {
*age = Age(30)
}
func main() {
age := Age(25)
age.String()
age.Modify()
age.String()
sm := Age.String
sm(age)
result, err := sum(-1, 2)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(result)
}
fmt.Println(sum1(1, 2))
fmt.Println(sum1(1, 2, 3))
fmt.Println(sum1(1, 2, 3, 4))
sum2 := func(a, b int) int {
return a + b
}
fmt.Println(sum2(1, 2))
c1 := colsure()
fmt.Println(c1())
fmt.Println(c1())
fmt.Println(c1())
}
func colsure() func() int {
i := 0
return func() int {
i++
return i
}
}
func sum(a int, b int) (sum int, err error) {
if a < 0 || b < 0 {
return 0, errors.New("a或者b不能是负数")
}
sum = a + b
err = nil
return
}
func sum1(params ...int) int {
sum := 0
for _, i := range params {
sum += i
}
return sum
}

3
flysnow/ch06/go.mod Normal file
View File

@ -0,0 +1,3 @@
module flysnow/ch06
go 1.23.0

10
flysnow/ch06/main.go Normal file
View File

@ -0,0 +1,10 @@
package main
type person struct {
name string
age uint
}
func main() {
}

3
flysnow/tour/go.mod Normal file
View File

@ -0,0 +1,3 @@
module flysnow/tour
go 1.23.0

7
flysnow/tour/tour.go Normal file
View File

@ -0,0 +1,7 @@
package main
import "fmt"
func main() {
fmt.Println("hello world")
}

8
helloworld/.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

9
helloworld/.idea/go.iml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="Go" enabled="true" />
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/go.iml" filepath="$PROJECT_DIR$/.idea/go.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,3 @@
module example.com/greetings
go 1.16

View File

@ -0,0 +1,8 @@
package greetings
import "fmt"
func Hello(name string) string {
message := fmt.Sprintf("Hi, %v. Welcome!", name)
return message
}

7
helloworld/hello/go.mod Normal file
View File

@ -0,0 +1,7 @@
module example.com/hello
go 1.23.0
replace example.com/greetings => ../greetings
require example.com/greetings v0.0.0-00010101000000-000000000000

11
helloworld/hello/hello.go Normal file
View File

@ -0,0 +1,11 @@
package main
import (
"example.com/greetings"
"fmt"
)
func main() {
message := greetings.Hello("Gladys")
fmt.Println(message)
}