随笔分类 -  Golang入门

摘要:flag用于解析命令行选项 例子: package main import ( "fmt" "flag" ) var ( intflag int boolflag bool stringflag string ) // 初始化变量 func init() { flag.IntVar(&intflag 阅读全文
posted @ 2022-09-08 16:39 JaydenQiu
摘要:简单使用 func main() { fmt.Println("c") defer func() { // 必须要先声明defer,否则不能捕获到panic异常 fmt.Println("d") if err := recover(); err != nil { fmt.Println(err) / 阅读全文
posted @ 2022-03-02 08:50 JaydenQiu
摘要:一、通过别名方法,扩展已有类型 package op // 定义了新类型Queue,该类型具有几种方法 type Queue []int // 因为需要改参数,所以传地址 func (q *Queue) Push(v int) { *q = append(*q, v) } func (q *Queu 阅读全文
posted @ 2021-11-28 09:35 JaydenQiu
摘要:尝试安装 zap 包 go get -u go.uber.org/zap go.mod 文件自动生成依赖目录 module gomodTest go 1.17 require ( go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v 阅读全文
posted @ 2021-11-25 23:14 JaydenQiu
摘要:一、bool 二、string 三、数字型 (u)int // 不规定长度,在32位系统就32位,64位系统就64位 (u)int8 (u)int16 (u)int32 (u)int64 // 规定长度8、16、32、64等 unitptr // 指针,长度跟操作系统相关 四、字符型 byte // 阅读全文
posted @ 2021-11-25 20:43 JaydenQiu
摘要:main.go package main import ( "fmt" "learngo/op" ) func main() { fmt.Println(op.Add(3,3)) } 封装好的op包,处于main同级目录下的 op/op.go package op // 目录名可以和包名不一样 // 阅读全文
posted @ 2021-11-21 11:59 JaydenQiu
摘要:package main import "fmt" // 新建结构体类型 type treeType struct { name string age int address string } // 给结构体新增方法 func (node treeType) echoName() { // 前面括号 阅读全文
posted @ 2021-11-21 11:07 JaydenQiu
摘要:package main import "fmt" func main() { // map // 直接定义 map m := map[string]int { "age":18, "name":11, "otherName":12, } fmt.Println(m) // make 定义 map 阅读全文
posted @ 2021-11-20 16:28 JaydenQiu
摘要:package main import "fmt" func main() { // slice 添加元素 arr := [...]int{1,2,3} // 因为arr定义时已经固定好 length 跟 capacity,所以添加元素只能另起一个数组 arr1 := append(arr[:],4 阅读全文
posted @ 2021-11-20 15:55 JaydenQiu
摘要:package main import "fmt" // 通过slice,更新array func updateSlice(a []int) { a[0] = 333 } func main() { // Slice(切片):本身没有数据,是对底层array的一个view。 []里面带有: 的都是切 阅读全文
posted @ 2021-11-20 14:04 JaydenQiu
摘要:package main import "fmt" // 数组作为参数传递,长度一定要达到要求 func acceptArr(a [5]int) { fmt.Println("测试数组长度要求",a) } // go 是值传递,函数里改变数组并不影响原来的值 func changeArr(a [5] 阅读全文
posted @ 2021-11-20 10:01 JaydenQiu
摘要:package main import "fmt" // 指针 (两个值交换) func swap(a, b *int) { // *int表示这两个整型是指针地址 *b, *a = *a, *b } // 普通的两数值交换 func normalSwap(c,d int) (int, int) { 阅读全文
posted @ 2021-11-19 20:08 JaydenQiu
摘要:package main import ( "fmt" "math" "reflect" "runtime" ) // 一个返回值函数 func testfn1(a int,b int) int { return a + b } // 多个返回值函数 func testfn2(a int, b in 阅读全文
posted @ 2021-11-19 13:23 JaydenQiu
摘要:package main import ( "bufio" "fmt" "os" "strconv" ) func main() { // 一般 for 循环 sum := 0 for i := 1; i <= 100; i++ { sum += 1 } fmt.Println(sum) // 省略 阅读全文
posted @ 2021-11-18 22:05 JaydenQiu
摘要:package main import ( "fmt" "io/ioutil" ) // 一般 switch 语句 func eval(a,b int,op string) int { var result int switch op { case "+": result = a + b case 阅读全文
posted @ 2021-11-18 21:32 JaydenQiu
摘要:package main import ( "fmt" "math" ) func main() { // 常量定义 const a int = 123 const b,c = "str",false const ( d int = 1 e string = "xi" ) // const 数值可作 阅读全文
posted @ 2021-11-18 20:42 JaydenQiu
摘要:package main import "fmt" // 包内部变量定义 var aa = 1 var bb = "kan" // 简略定义 var ( cc = 2 dd = 3 ) // 包内部定义的变量 func main() { // 函数内部变量定义 var a bool = true v 阅读全文
posted @ 2021-11-18 19:43 JaydenQiu
摘要:安装go 下载安装地址:https://studygolang.com/dl 设置国内镜像 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct 安装 goland 下载地址:https://www.jetbrain 阅读全文
posted @ 2021-11-16 13:12 JaydenQiu