首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏go程序例子

    Go程序例子(9):切片

    切片(Slices)是 Go 语言中一个重要的数据类型,相比数组提供了更强大的序列接口。 运行结果:$ go run slices.gouninit: [] true trueemp: [ ] len: 3 cap: 3set: [a b c]get: clen: 3apd: [a b c

    21010编辑于 2024-12-09
  • 来自专栏XinChen's Tec

    GoLang9 - Go语言函数

    Go 语言函数 函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。 函数定义 Go 语言函数定义格式如下: func function_name( [parameter list] ) [return_types] { 函数体 } 函数定义解析: func:函数由

    27910编辑于 2023-02-27
  • 来自专栏余生开发

    go语言面试题

    结构体⽐较规则之⼀: 只有相同的类型的结构体才可以⽐较(1 结构体的属性类型, 2 属性的顺序)

    1.3K40发布于 2020-12-31
  • 来自专栏Lemon黄

    Go 基础面试题

    本文是 Go 基础常见面试题,结合ChatGPT的详细解释版,全背是不可能,假如面试碰上了,挑出要点用自己的语言回答就好了。 1. 与其他语言相比,Go 语言的优点有哪些? 强大的标准库:Go 有一个丰富的标准库,尤其是对于网络编程和 Web 服务。 工具链:Go 语言自带一套完整的工具,如 go fmt 用于格式化代码,go get用于管理依赖等。 Goroutine 是 Go 语言的并发执行单元,它是一个轻量级的线程,由 Go 运行时管理。 9. Go 语言当中通道(Channel)有什么特点,需要注意什么? Go 语言中的通道(Channel)是用来在 goroutines 之间安全传递数据的管道。 Go 的参数传递、引用类型 在 Go 语言中,所有的参数传递都是按值传递。

    85410编辑于 2023-12-06
  • 来自专栏编程基础

    Go编程基础-基础篇 9

    strP的地址为 0xc000118220 指针strP指向的值为 How are you 变量str的地址为 0xc000118220 变量str的值为 How are you 指针作为函数的参数 Go 只要这两个部分相等,则 Go 语言中的两个数组就是相等的 package main import "fmt" func main() { var a [2]int var c = [2]int{

    34511发布于 2021-03-02
  • 来自专栏seth-shi的专栏

    学习 Go 的 Plan 9 汇编

    \seth-shi> go build -gcflags -S main.go 两个#开头的是我的理解和上网查的结果, []中是还需要我去了解的 # command-line-arguments ## 6e 74 73 0a 6d 6f 64 09 e-arguments.mod. 0x0030 73 65 74 68 09 28 64 65 76 65 6c 29 09 0a f9 SRODATA dupok size=9 0x0000 00 00 06 75 6e 73 61 66 65 ...unsafe gclocals 0x0185) JLS 转移 条件转移指令 JLS 389上一行的比较结果,左边小于右边则执行跳到0x0185地址处(十进制389转换成十六进制0x0185) 引用 肝了一上午golang之plan9入门 go编译工具的使用之plan9汇编 go plan9 汇编入门,带你打通应用和底层 【 Go 夜读 】

    43911编辑于 2023-12-18
  • 来自专栏Devops专栏

    9. Go复合类型-数组

    9. Go复合类型-数组 前言 前面我们已经学习了一些简单的基本类型,现在学习复合类型,复合类型主要包括了数组,指针,切片,结构体等。 .\01_数组.go:14:3: invalid array index 10 (out of bounds for 10-element array) .\01_数组.go:19:24: invalid =9 a[10]=10 通过for循环完成数组的赋值与输出。 a[9]=10 i 变量存储的是数组的下标,data变量存储的是数组中的值。 虽然以上代码能够满足需求,但是问题是比较麻烦,GO语言中提供了另外一种方式进行比较, 直接使用“==”或”!=”进行比较。但是具体的要求是: 1:只支持 == 或 !

    77830发布于 2021-07-29
  • 来自专栏鲸鱼动画

    前端综合面试题(9道)

    面试题如下: 1.html中有一个双标记标签可以让文字任意滑动 2.CSS中怎么首行缩进 3.CSS调整文字间距 4.使用过弹性盒子吗?怎么允许换行 5.什么是闭包,优缺点有哪些? 9.什么是防抖与节流? 答案参考: 1,marquee <marquee direction=left>组图:盘点2020年十大自然景观</marquee> 文字缓缓向左滑动。 9,防抖:多次触发事件后,n秒内函数只能执行一次;   节流:多次触发事件后,函数每n秒执行一次; (本章完)   前端的学习不是一蹴而就,不积跬步无以至千里,不积小流无以成江海。

    78820发布于 2020-09-22
  • 来自专栏小尘哥的专栏

    9Go的执行原理以及Go命令

    Go Go Go !!! localhost:hello ruby$ go run helloworld2.go 我是第二个helloworld文件 Go Go Go !!! ? ' # internal packagefile command-line-arguments=/Users/ruby/Library/Caches/go-build/6b/6b9577027c8da20b0ae6da790267f558b3b71eea1feb44039fb933b35eaef6f9 /6b/6b9577027c8da20b0ae6da790267f558b3b71eea1feb44039fb933b35eaef6f9-d $WORK/b001/exe/mytest localhost -buildmode=exe -buildid=FJ6kJTmN9rcWcwLhqfiQ/E1CTs4eXkD5M28s_FQXT/E1CTs4eXkD5M28s_FQXT/FJ6kJTmN9rcWcwLhqfiQ

    78630发布于 2019-06-04
  • 来自专栏Lemon黄

    Go 并发编程面试题

    Mutex 几种状态 在 Go 语言的同步库中,sync.Mutex是用来提供互斥锁的基本同步原语。 互斥锁在内部状态实现可能因 Go 语言的不同版本而有所不同。 Go 语言团队不断优化sync.Mutex,以找到公平和效率之间的平衡点。有关 sync.Mutex 的更多权威信息,建议查看最新的 Go 语言源码和文档。 3. 需要注意的是,在实现细节方面,Go 的标准库不提供关于互斥锁内部行为的具体参数。自旋的逻辑和上述条件可能在 Go 不同的版本之间有所变化,以上内容主要基于 Go 语言当前和之前版本的实现。 9. WaitGroup 用法 sync.Group是 Go 语言标准库中的一个同步原语,它用于等待一组 goroutine 完成。

    1.3K10编辑于 2023-12-13
  • 来自专栏十二的树洞

    go面试题目收集

    go语言中,new和make的区别? go语言中协程 协程和线程都可以实现程序的并发执行; 通过channel来进行协程间的通信; 只需要在函数调用前添加go关键字即可实现go的协程,创建并发任务; 关键字go并非执行并发任务 在Go语言中,程序单元也就指的是Goroutine go语言的select机制 for { select { case <-chan1: //..... Go语言局部变量分配在栈还是堆? Go语言编译器会自动决定把一个变量放在栈还是放在堆,编译器会做逃逸分析,当发现变量的作用域没有跑出函数范围,就可以在栈上,反之则必须分配在堆。 如何获取 go 程序运行时的协程数量, gc 时间, 对象数, 堆栈信息?

    97352编辑于 2021-12-24
  • 来自专栏mousemin

    Go 语言笔试面试题

    Go 语言笔试面试题 日常收集的题 一. 基础语法 1 = 和 := 的区别? 答案 := 声明+赋值 = 仅赋值 1var a int 2a = 10 3// 等价于 4a := 10 2 Go 有异常类型吗? 答案 Go 没有异常类型,只有错误类型(Error),通常使用返回值来表示异常状态。 1f, err := os.Open("/tmp/a.txt") 2if err ! 7 b := a[2:5] 8 c := a[9:10] 9 b = append(b, 1) 10 c = append(c, 1) 11 fmt.Println(a) 12} 答案 [0 1 2 3 4 1 6 7 8 9]

    60730编辑于 2023-06-10
  • 来自专栏咸鱼的进阶学习之路

    【初识Go】| Day9 包管理

    Go语言通过包管理来封装模块和复用代码,这里我们只介绍Go Modules管理方法 Go Modules于Go语言1.11版本时引入,在1.12版本正式支持,是由Go语言官方提供的包管理解决方案 Modules " GONOSUMDB="" GOPRIVATE="" 如果需要更改 GO111MODULE ,可以使用go env命令 go env -w GO111MODULE=on GO111MODULE auto :只要项目包含了 go.mod 文件的话启用 Go modules,目前在 Go1.11 至 Go1.14 中仍然是默认值。 初始化模块 Go Modules的使用方法比较灵活,在目录下包含go.mod文件即可 首先通过如下命令创建一个新的Module go mod init [module name] 然后当前目录会生成go.mod mod init // 初始化go.mod go mod tidy // 更新依赖文件 go mod download // 下载依赖文件 go mod vendor // 将依赖转移至本地的

    65000发布于 2020-12-23
  • 来自专栏全栈工程师修炼之路

    9.Go编程快速入门学习

    Tips: 编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具(再次体现Go语言的优秀)。 非常注意、非常注意在包目录内,所有以_test.go为后缀名的源代码文件都是go test测试的一部分,不会被go build编译到最终的可执行文件中。 split_test.go // # -v 指定一个目录将该目录下_test.go中设置的单元测试函数进行执行。 以及相关依赖包 ➜ go get golang.org/x/tools/cmd/godoc go: downloading golang.org/x/tools v0.1.7 go: downloading 与example_test.go或者example_包名_test.go都在同一个包下。

    88220编辑于 2022-09-29
  • 来自专栏Go每日一库

    Go每日一库之9:log

    Go 标准库提供了一个日志库log。本文介绍log库的使用。 快速使用 log是 Go 标准库提供的,不需要另外安装。 如11:45:45.123123; Llongfile:输出长文件名+行号,含包名,如github.com/go-quiz/go-daily-lib/log/flag/main.go:50; Lshortfile :输出短文件名+行号,不含包名,如main.go:50; LUTC:如果设置了Ldate或Ltime,将输出 UTC 时间,而非当地时区。 // src/log/log.go const ( LstdFlags = Ldate | Ltime ) 这就是为什么默认情况下,每条日志前会自动加上日期和时间。 运行代码: $ go run main.go 2020/02/07 13:48:54 main.go:23: dj login, age:18 注意到,第一个参数为io.Writer,我们可以使用io.MultiWriter

    53630编辑于 2023-09-15
  • 来自专栏Java

    go语言面试题:为什么选择go语言

    选择Go语言的原因: 并发和高并发:Go 语言在设计之初就考虑了并发和高并发方面的问题,将其内置于语言层面上,在编写代码时容易实现并发,提升程序的性能。 高效率:Go 语言的速度非常快(如 C/C++),同时又简单易用(如 Python)。Go 语言通过 Go 语言自身的编译器即可生成本地机器码,无需虚拟机,加快了执行效率。 开发工具丰富:Go语言是开源的,所以有很多优秀的开发工具,例如Goland、Visual Studio Code等。 学习曲线低:Go 语言语法类似于C/C++,容易学习,对于其他编程语言的用户来说更加容易上手。 例如,在高并发的Web应用程序中,Go 语言被广泛应用,如微服务框架、云原生应用开发、区块链等。 Go语言的优秀性能和高可靠性已经在实际应用中得到了验证。

    14710编辑于 2025-01-21
  • 来自专栏京程一灯

    关于 Promise 的 9面试题

    请完成以下9个问题? 1. 多个 `.catch` var p = new Promise((resolve, reject) => { reject(Error('The Fails!')) 9. `.then` 和 `.catch` 之间的流程 Promise.resolve('Success!')

    90520发布于 2019-12-12
  • 来自专栏猫头虎博客专区

    2019年9月26日: Go生态洞察:发布Go模块

    2019年9月26日: Go生态洞察:发布Go模块 摘要 猫头虎博主在此,带你深入Go的奥秘!今天我们探讨Go模块的发布。 引言 这篇文章是关于Go模块系列教程的第三部分,旨在帮助你了解如何编写和发布Go模块。 第1部分 — 使用Go模块 第2部分 — 迁移到Go模块 第3部分 — 发布Go模块 (本文) 第4部分 — Go模块:v2及以后 第5部分 — 保持模块兼容性 正文 项目设置 首先,你需要一个现有项目来作为例子 可以使用使用Go模块文章结尾处的文件: // go.mod module example.com/hello go 1.12 require rsc.io/quote/v3 v3.1.0 // 更多代码 参考资料 Tyler Bui-Palsulich, “Publishing Go Modules”, 2019年9月26日. Go官方博客

    17610编辑于 2024-04-09
  • 来自专栏Lemon黄

    Go 运行时面试题

    并发简单:Go 语言提供的 goroutines 使并发编程变得更简洁易懂。通过go关键字,开发者可以非常方便地启动新的并发任务。 需要注意的使,Go 的调度器细节可能随着版本更新而变化,上述描述适用于 1.x 系列的 Go 版本。 5. Go 1.14 版本引入了基于信号的抢占,这标志着 Go 语言实现了抢占式调度的一大步。 8. 9. 升级 Go 版本:Go 团队不断优化 GC 机制。新的 Go 版本可能会带来更优化的 GC 行为,因此保持在最新的稳定版可以使应用受益于这些优化。 在调优之前,了解应用的内存使用模式是很重要的。

    78110编辑于 2023-12-13
  • 来自专栏码农编程进阶笔记

    Go面试必会的面试题

    引用类型的内存在堆中分配,当没有任何变量引用堆中的内存地址时,该内存地址对应的数据存储空间就变成了垃圾,就会被GO语言的GC回收。 五、堆和栈 堆:在Go中,栈的内存是由编译器自动进行分配和释放,栈区往往存储着函数参数、局部变量和调用函数帧,它们随着函数的创建而分配,函数的退出而销毁。 注意:在go中 var是声明关键字,不会开辟内存空间;使用 := 或者 make 关键字进行初始化时才会开辟内存空间。 七、深拷贝和浅拷贝 操作对象 深拷贝和浅拷贝操作的对象都是Go语言中的引用类型 区别如下: 引用类型的特点是在内存中存储的是其他值的内存地址;而值类型在内存中存储的是真实的值。 九、go的map实现排序 我们知道go语言的map类型底层是有hash实现的,是无序的,不支持排序。 如果我们的数据使用map类型存储,如何实现排序呢?

    64722编辑于 2022-12-21
领券