ICode9

精准搜索请尝试: 精确搜索
  • Go的指针2022-07-02 21:00:22

    Go中的指针 要搞明白Go语言中的指针需要先知道三个概念 指针地址 指针类型 指针取值 Go语言中的指针操作非常简单,我们只需要记住两个符号:&:取地址,*:根据地址取值 关于指针 我们知道变量是用来存储数据的,变量的本质是给存储数据的内存地址起了一个好记的别名。比如我们定义了一个变

  • 第二章 Go基础语法2022-07-01 17:37:05

    第二章 Go基础语法 2.1 变量定义 创建变量方式(定义变量可不赋初值也可赋初值): 不赋初值 整型:var a int,默认为0 字符串:var s string,默认值无用println()法打印,但用printf("%q")打印出空字符串“”,&q指的是quotation 赋初值 整型:var a int = 3,var b,c int = 1,2 字符串:var s s

  • go并发编程2022-06-30 18:02:53

    go 并发编程之协程 一个goroutine会以一个很小的栈开始其生命周期,一般只需要2KB。区别于操作系统线程由系统内核进行调度, goroutine 是由Go运行时(runtime)负责调度。Goroutine 是 Go 程序中最基本的并发执行单元。每一个 Go 程序都至少包含一个 goroutine——main goroutine。 创建

  • go标准库2022-06-30 18:02:04

    os包 os 包中提供了操作系统函数的接口。os 包的作用主要是在服务器上进行系统的基本操作,如文件操作、目录操作、执行命令、信号与中断、进程、系统状态等。 标准库文档:https://pkg.go.dev/std 常用函数 函数名 功能 os.Hostname() (name, err) 返回主机名 os.Environ()[

  • Golang多线程垂直输出字符串2022-06-30 12:32:23

    [本文出自天外归云的博客园] 三个字符串,abc,def,ghi,请用多线程顺序输出:adg,beh,cfi 抛砖引玉,我的代码如下: package main import "fmt" import "sync" func printStr(a, b, c string) { strLen := len(a) var wg sync.WaitGroup wg.Add(strLen) msg

  • 25 Go 循环语句for循环2022-06-27 22:37:11

    golang语言,switch分支控制语句使用 switch语句基本结构如下   switch 表达式1 { case 表达式2,表达式3,...:     语句块1 case 表达式4,表达式5:     语句快2 default:     默认语句 }   注意事项: 1 switch的执行流程是,先执行表达式,得到值,然后和case的表达式进行比较,  

  • go语言的结构体-封装2022-06-26 13:31:09

    package main import ( "fmt" "unsafe" ) // Course类名,struct关键字 type Course struct { Name string Price int Url string } //函数的接收者,将Course struct进行绑定 func (c Course) printCourseInfo() { fmt.Printf("课程名:%s

  • golang 用gorm生成module文件2022-06-24 19:35:16

    网上的包过于繁琐复杂。所以写个简单。mysql的多种数据类型没有全部实现转化。可以编译成可执行文件。 package main import ( "flag" "fmt" "io" "os" "strings" "gorm.io/gorm" "gorm.io/driver/mysql" ) var db *gorm.DB func main(

  • 【Go】25、go语言访问数组元素2022-06-22 10:37:41

    可以通过下标的方式,来访问数组元素。数组的最大下标为数组长度-1,大于这个下标会发生数组越界1、访问数组元素variable_name[下标]func f1() { // 定义数组 var a1 [2]int // 赋值 a1[0] = 10 a1[1] = 100 // a1[2] = 20 fmt.Printf("a1: %v\n", a1[0]) fmt.Printf("a1[1]

  • Go语言中常见100问题-#48 panic2022-06-21 10:05:07

    panic会终止代码执行逻辑 panic语句会终止代码执行,即fmt.Println("b")不会被执行. func main() { fmt.Println("a") panic("foo") fmt.Println("b") // panic之后的内容不会输出,类似于linux中的exit函数功能,程序直接退出 } 上面程序输出如下: a panic: foo goroutine 1 [ru

  • golang 函数传参打包解包 不定长参数 ...2022-06-21 10:04:17

    package main import ( "fmt" "reflect" ) func main() { str := "X" iSlice := []interface{}(nil) strSlice := []string{"Y", "X", "C"} for _, v := range strSlice{ iSl

  • Go 语言实战(9):指针、引用和值2022-06-20 16:02:26

    在经过编写 CLI 程序的尝试之后,我们继续回来聊 Go 语言的基础知识。 相信实际写过一些代码之后,会更容易理解。 原计划这期聊 数组和切片。考虑到聊切片时,无论如何绕不开指针和引用的话题,干脆提到前面来。 目录 [TOC] 指针 指针(Pointer)本质上是一个指向某块计算机内存的地址。就像

  • 01-复杂度1 最大子列和问题(Go语言)2022-06-19 17:31:47

    点击查看代码 package main import "fmt" func main() { // 输入 var n int fmt.Scanf("%d", &n) inputs := make([]int, 0, n) for i := 0; i < n; i++ { var temp int fmt.Scanf("%d", &temp) inputs = append(inputs, temp)

  • Golang的Slice的坑2022-06-19 01:33:32

    数据的引用传递还是值传递 Go类型:基本类型(bool string int array)、引用类型(切片\map\interface\func\channel)、 结构类型、 自定义类型 引用类型,标头值里包含一个指 针,指向底层的数据结构,当我们在函数中传递引用类型时,其实传递的是这个标头值的副本,它所指向的底层结构并没有

  • struct结构体传值2022-06-19 01:01:12

    结构体是值传递 type Person struct { Name string } func TestStruct(t *testing.T) { var p = Person{ Name: "jack", } fmt.Printf("%p %s \n", &p, p.Name) P(p) fmt.Printf("%p %s \n", &p, p.Name)

  • Golang操作Kafka2022-06-19 00:02:27

    一.使用库说明 Golang中连接kafka可以使用第三方库:github.com/Shopify/sarama 二.Kafka Producer发送消息 package main import ( "fmt" "github.com/Shopify/sarama" ) func main() { config := sarama.NewConfig() config.Producer.RequiredAcks = sarama.WaitForAll

  • golang的defer踩坑汇总2022-06-18 22:03:36

    原文链接:http://www.zhoubotong.site/post/50.html defer语句用于延迟函数调用,每次会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行。延迟函数可以有参数: 延迟函数的参数在defer语句出现时就已确定下来(传值的就是当前值) return先赋值(对于命名返回值),然后执行defer,最

  • Go之导入包、init函数、全局变量和main()函数的执行顺序2022-06-18 14:03:18

    此文是学习了韩顺平老师的视频之后总结的,方便以后自己查阅,如有不对,请指出批评。 https://www.bilibili.com/video/BV1pt41127FZ 1.每一个源文件都可以包含一个init函数,该函数会在init函数执行之前被Go框架调用,也就是说init函数在main函数执行前被调用。 因此可以使用init函数进

  • GO语言学习——方法版学生管理系统2022-06-18 10:33:21

    方法版学生管理系统 main.go文件 package main import ( "fmt" "os" ) // 学生管理系统 var smr studentMgr // 声明一个全局的变量学生管理对象:smr // 菜单函数 func showMenu() { fmt.Println("------------welcome sms!------------") fmt.Println(` 1. 查看所有学生

  • 第一章 Go语言变量和基本数据类型2022-06-17 18:33:24

    Hello,world! package main import "fmt"//导入了哪些包 func main() { fmt.Println("Hello, world!") } //两种模式运行go程序 //1. go run main.go-->将一个或多个以main.go为后缀的源文件进行编译,链接,然后生成可执行文件 //2. go bulid main.go--->这条命令生成一个叫做ma

  • test22022-06-17 18:04:58

        package mainimport "fmt"func addN(n int) int { if n == 1 { return 1 } return n + addN(n-1)}//n 阶乘 n != 1*2*3*4*5*n n => 0func factorialN(n int) int { if n == 0 { return 1 } else if n < 0 { return -1 } retu

  • go 装饰器2022-06-17 09:05:37

    go 装饰器实现统计函数运行时间 func TestDecorator(t *testing.T) { fn := Timer(TimerTest) fn() } func Timer(fn func()) func() { return func() { start_time := time.Now().Unix() fn() end_time := time.Now().Unix() fmt.Println("func use time: ",end_t

  • 数组、切片(包括字符串):“append” 方法的机制2022-06-16 20:33:16

    数组、切片(包括字符串):“append” 方法的机制 原文 介绍 数组是编程语言中最常见的一个概念。数组看起来很简单但却有许多问题需要在加入编程语言中解答,比如: 固定大小还是可变大小? 大小作为类型的一部分吗? 多维数组应该是什么样子? 空数组有意义吗? 这些问题的答案会影响数组是否只

  • Go语言入门 (Day 5)并发2022-06-16 18:34:30

    Go 并发 Go 程 Go 程(goroutine)是由 Go 运行时管理的轻量级线程。 go f(x, y, z) 会启动一个新的 Go 程并执行 f(x, y, z) f, x, y 和 z 的求值发生在当前的 Go 程中,而 f 的执行发生在新的 Go 程中。 Go 程在相同的地址空间中运行,因此在访问共享的内存时必须进行同步。sync 包提

  • GO语言操作mysql数据库2022-06-15 22:35:34

    mysql库的安装: 直接在vscode终端运行: go get -u github.com/go-sql-driver/mysql  下载完之后,导入包 import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) 数据库初始化: //定义全局变量db,方便之后对数据库操作 var db *sql.DB //定义一个初始化数据

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有