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

    go语言面试题

    , function, pointer, map, slice, channel. string: 如果表示⼀个string的空值, ⽤空字符串来表示 "" 不能够将nil赋值给⼀个string类型 4. (4)代码区 存放代码逻辑的内存 数组与切⽚ (1)切⽚的初始化和追加: slice在经过make初始化,默认的数据的值是0,append 是动态额外开辟内存。

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

    Go 基础面试题

    本文是 Go 基础常见面试题,结合ChatGPT的详细解释版,全背是不可能,假如面试碰上了,挑出要点用自己的语言回答就好了。 1. 与其他语言相比,Go 语言的优点有哪些? 强大的标准库:Go 有一个丰富的标准库,尤其是对于网络编程和 Web 服务。 工具链:Go 语言自带一套完整的工具,如 go fmt 用于格式化代码,go get用于管理依赖等。 4. Go 支持什么形式的类型转换?将整数转换为浮点数 在 Go 语言中,只支持显式的类型转换,意味着你需要明确指出你想要转换的类型。 Goroutine 是 Go 语言的并发执行单元,它是一个轻量级的线程,由 Go 运行时管理。 Go 的参数传递、引用类型 在 Go 语言中,所有的参数传递都是按值传递。

    85410编辑于 2023-12-06
  • 来自专栏Devops专栏

    4.Go常量

    4.Go常量 前言 在上一篇章,我们已经学习了Go基础数据类型,那么这一篇章我们来学习一下Go的常量。 1:常量定义使用 在讲解常量之前,我们要先简单说一下我们前面讲解的变量。 %d, b=%d, c=%d\n", a, b, c) // 3. iota遇到const,重置为 0 const d = iota fmt.Printf("d=%d\n", d) // 4.

    27210编辑于 2022-01-17
  • 来自专栏Golang语言社区

    实效go编程--4

    (s int) { for _, v := range a { s += v } return } request := &Request{[]int{3, 4, const NCPU = 4 // CPU核心数 func (v Vector) DoAll(u Vector) { c := make(chan int, NCPU) // 缓冲区是可选的 尽管Go的并发特性能够让某些问题更易构造成并行计算, 但Go仍然是种并发而非并行的语言,且Go的模型并不适合所有的并行问题。 关于其中区别的讨论,见 此博文。 若回溯到达Go程栈的顶端,程序就会终止。不过我们可以用内建的 recover 函数来重新或来取回Go程的控制权限并使其恢复正常执行。 recover 的一个应用就是在服务器中终止失败的Go程而无需杀死其它正在执行的Go程。

    985150发布于 2018-03-26
  • 来自专栏Lemon黄

    Go 并发编程面试题

    互斥锁在内部状态实现可能因 Go 语言的不同版本而有所不同。 Go 语言团队不断优化sync.Mutex,以找到公平和效率之间的平衡点。有关 sync.Mutex 的更多权威信息,建议查看最新的 Go 语言源码和文档。 3. Mutex 允许自旋的条件 总结点: 锁已被占用,并且锁不处于饥饿模式 积累的自旋次数小于最大自旋次数(active_spin=4) CPU 核数大于 1 有空闲的 P 当前 goroutine 锁挂在的 需要注意的是,在实现细节方面,Go 的标准库不提供关于互斥锁内部行为的具体参数。自旋的逻辑和上述条件可能在 Go 不同的版本之间有所变化,以上内容主要基于 Go 语言当前和之前版本的实现。 4. RWMutex 实现 sync.RWMutex是 Go 语言中的一个同步原语,用于控制对某项资源的读写访问。

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

    go面试题目收集

    (2)sliceTwo := sliceOne[2:4] 这种方式是基于其他切片或数据创建容量,长度为创建切片是指定的结束-起始位置, = 4-2=2;容量就等于切片的容量-起始位置=10-2=8.且两个切片共享同一个数据区 字面量方式创建 hash := map[string]int{ "1": 2, "3": 4, "5": 6, } map解决冲突的方法 使用链地址法:当多个键被哈希到了同一个bucket时,也就是产生了哈希冲突 数组的长度是数组类型的一部分,所以[3]int 和 [4]int 是两种不同的数组类型。 在go语言中,new和make的区别? go语言中协程 协程和线程都可以实现程序的并发执行; 通过channel来进行协程间的通信; 只需要在函数调用前添加go关键字即可实现go的协程,创建并发任务; 关键字go并非执行并发任务

    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 ! = nil { 3 log.Fatal(err) 4} 二. 6 var y int = M 7 fmt.Println(x, y) 8} 答案 编译失败:cannot use M (type int32) as type int in assignment Go

    60730编辑于 2023-06-10
  • 来自专栏架构师成长之路

    GO进阶(4) 深入Go的内存管理

    32位机器可以直接寻址4G空间,意思是每个应用程序都有4G内存空间可用。 虚拟内存一般分为以下4大块: 1,栈空间:特点是内存地址连续,先进后出,里面放了局部变量、函数形参、自动变量。 Go把变量的位置在哪儿这件事对程序员“隐藏”了,Go自行处理;因为Go认为:变量的存储位置,会对程序的性能有一定影响,而Go是计划打造对性能有极致要求的程序,因而自己管了。 goroutine会占用4GB。      答案是有的,Go向开发者提供了变量逃逸分析的工具: go build -gcflags '-m -l' main.go 这里的main.go也可以是某个具体的二进制应用程序 下面对如下代码进行逃逸分析: 4.逃逸分析在编译阶段完成 因为无论变量的大小,只要是指针变量都会在堆上分配,所以对于小变量我们还是使用传值效率(而不是传指针)更高一点

    1K10编辑于 2023-02-27
  • 来自专栏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
  • 来自专栏go程序例子

    Go程序例子(4):常量

    Go 支持字符、字符串、布尔值和数值类型的常量。 fmt.Println(math.Sin(n))}$ go run constant.go constant6e+11600000000000-0.28470407323754404

    12210编辑于 2024-12-05
  • 来自专栏solate 杂货铺

    go监控方案(4) -- telegraf

    telegraf 整个包非常大,在这个方案只用了statsd插件部分的修改,所以更具体的需要根据自己需要进行学习,如果只是使用本方案就可以略过。

    3.3K20发布于 2019-07-22
  • 来自专栏人人都是架构师

    Go每日一库之4go-ini

    go-ini是 Go 语言中用于操作 ini 文件的第三方库。 本文介绍go-ini库的使用。 快速使用 go-ini 是第三方库,使用前需要安装: $ go get gopkg.in/ini.v1 也可以使用 GitHub 上的仓库: $ go get github.com/go-ini/ini 为此,go-ini也提供对应的MustType(Type 为Init/Uint/Float64等)方法,这个方法只返回一个值。 或许这是go-ini库可以优化的点? 其实go-ini还有很多高级特性。官方文档非常详细,推荐去看,而且有中文哟~ 作者无闻,相信做 Go 开发的都不陌生。 参考 go-ini GitHub 仓库 go-ini 官方文档

    57930编辑于 2023-09-12
  • 来自专栏Lemon黄

    Go 运行时面试题

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

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

    Go面试必会的面试题

    引用类型的内存在堆中分配,当没有任何变量引用堆中的内存地址时,该内存地址对应的数据存储空间就变成了垃圾,就会被GO语言的GC回收。 五、堆和栈 堆:在Go中,栈的内存是由编译器自动进行分配和释放,栈区往往存储着函数参数、局部变量和调用函数帧,它们随着函数的创建而分配,函数的退出而销毁。 注意:在go中 var是声明关键字,不会开辟内存空间;使用 := 或者 make 关键字进行初始化时才会开辟内存空间。 fmt.Printf("%T\n", b) // *bool fmt.Println(*a) // 0 fmt.Println(*b) // false } 4. 九、go的map实现排序 我们知道go语言的map类型底层是有hash实现的,是无序的,不支持排序。 如果我们的数据使用map类型存储,如何实现排序呢?

    64722编辑于 2022-12-21
  • 来自专栏写代码和思考

    Go 学习笔记4 - Go Module 模块及依赖管理

    Go 在 版本1.1 开始提供 Module 模块化的支持。 总结 项目工程仓库、模块和包之间的关系: 项目工程仓库 可以包含一个或多个Go模块。 每个模块 可以包含一个或多个Go包。 每个 包 由单个目录中的一个或多个Go源文件组成。 指令格式: go mod init 模块名 比如: go mod init mymod 在命令行窗口执行后,将会在当前目录下生产一个 go.mod 文件,内容如下: module mymod go 1.14 模块的应用更新 在goland 中,配置了上述的模块后。 Enable Go Modules。

    1K20发布于 2020-03-20
  • 来自专栏Java

    go语言面试题go与cpp和java的对比

    Go语言、C++和Java语言是三种性能较好的编程语言,它们在某些方面有不同的优势。下面是一个简单的比较: 内存管理 C++需要手动管理内存,而Java和Go语言使用垃圾回收机制。 Go语言的垃圾回收机制与Java相似,但是Go语言在设计上更加注重高性能和高并发,在实际生产环境中表现也很好。 Java和Go语言在执行速度方面与C++相差不大,但是Go语言在处理高并发方面更加出色,因为Goroutines使Go代码并发执行非常容易。 而Go语言使用Goroutines和Channels来处理并发性,使得Go语言非常适合于高并发场景,简单易用。 如果你需要处理高并发,则选择Go语言。

    20800编辑于 2025-01-21
  • 来自专栏Golang开发

    Go语言核心编程(4)——接口

    注:本文是《Go语言核心编程》(李文塔/著)个人读书笔记 接口声明 Go 语言的接口分为接口字面量类型和接口命名类型,接口的声明使用 interface 关键字 。 空接口表示为interface{} 空接口用途 1 GO语言没有泛型,如果一个函数需要接收任意类型的参数, 则参数类型可以使用空接口类型,这是弥补没有泛型的一种手段。

    1K20发布于 2019-05-29
  • 来自专栏编程基础

    Go编程基础-基础篇 4

    Thur) fmt.Println("Fri :", Fri) fmt.Println("Sat :", Sat) } Sun : 0 Mon : 1 Tues: 2 Wed : 3 Thur: 4

    28531发布于 2021-02-26
  • 来自专栏腾讯技术工程官方号的专栏

    Go API 开发实战 4Go API 开发环境配置

    Go API 开发环境配置:Go 命令安装 Go 有多种安装方式,比如 Go 源码安装、Go 标准包安装、第三方工具(yum、apt-get 等)安装。 export PATH=$GOPATH/bin:$PATH:$GO_INSTALL_DIR/go/bin 如果不想每次登录系统都设置一次环境变量,可以将上面 4 行追加到 $HOME/.bashrc文件中 4.    Vim IDE 常用功能 在 Go 项目开发中最常用的功能是: gd 或者ctrl + ] 跳转到对应的函数定义处 ctrl + t 标签退栈 ctrl + o 跳转到前一个位置 <F4> 最近文件列表 该小节向读者介绍了: 如何安装 Go 编译环境 如何配置 Vim IDE 开头的这 4 小节介绍了 API 开发的一些基本的知识,并做了开发前的准备工作,接下来开始 API 开发实战,一步一步教你构建一个账号管理的

    1.3K21发布于 2019-05-16
  • 来自专栏Golang开发

    golang-101-hacks(4)——go build”和 go install

    hello.go 5 directories, 2 files 在源码greet包的greet.go文件中只有一个函数 # cat src/greet/greet.go package greet } 虽然hello.go是一个main利用的包,greet可以构建到可执行的二进制文件中: # cat src/hello/hello.go package main import "greet" and execute go build command: # pwd /root/gowork/src/hello # go build # ls hello hello.go # . └── hello └── hello.go 5 directories, 2 files 在hello目录下运行go install Running go install └── hello └── hello.go 6 directories, 4 files 不仅在bin目录中生成hello命令,而且在pkg/linux_AMd64中还生成了

    46920发布于 2019-05-29
领券