无上光东莞网站,网站自助平台,邵阳建网站多少钱,婚纱设计工作室Golang 面试题合集.png 背景 在之前的文章中分享了 k8s 相关的面试题#xff0c;本文我们重点来讨论和 k8s 密切相关的 Go 语言面试题。 这几年随着云原生的兴起#xff0c;大部分后端开发者#xff0c;特别是 Java 开发者都或多或少的想学习一些 Go 相关的技能#xff0c;… Golang 面试题合集.png 背景 在之前的文章中分享了 k8s 相关的面试题本文我们重点来讨论和 k8s 密切相关的 Go 语言面试题。 这几年随着云原生的兴起大部分后端开发者特别是 Java 开发者都或多或少的想学习一些 Go 相关的技能所以今天分享的内容比较初级适合 Go 语言初学者。 image.png 本文内容依然来自于这个仓库https://github.com/bregman-arie/devops-exercises 以下是具体内容 的内容是我的补充部分。 Go 101 Go 语言有哪些特点 Go 是一种强类型静态语言变量的类型必须在声明的时候指定但可以使用类型推导在运行时不能修改变量类型与 Python 这类动态类型语言不同。足够的简单通常一个周末就能学会编译速度够快内置并发相对于 Java 的并发来说非常简单内置垃圾收集多平台支持可以打包到一个二进制文件中所有运行时需要依赖的库都会被打包进这个二进制文件中非常适合于分发。 Go 是一种编译型的静态类型语言正确还是错误 正确✅ 为什么有些函数是以大写字母开头的 这是因为 Go 语言中首字母大写的函数和变量是可以导出的也就是可以被其他包所引用类似于 Java 中的 public 和 private 关键字。 变量和数据类型 简洁和常规声明变量方式 package mainimport fmtfunc main() {x : 2 // 只能在函数内使用自动类型推导var y int 2fmt.Printf(x: %v. y: %v, x, y)
} 正确✅还是错误❌ 可以重复声明变量❌强类型语言的特性变量一旦声明就必须使用✅避免声明无效变量增强代码可读性 下面这段代码的结果是什么 package mainimport fmtfunc main() {var userNameuserName userfmt.Println(userName)
} 编译错误变量 userName 没有声明类型修改为这样是可以的 func main() {var userName stringuserName userfmt.Println(userName)
} var x int 2 and x : 2 这两种声明变量的区别 结果上来说是相等的但 x : 2 只能在函数体类声明。 下面这段代码的结果是声明 package mainimport fmtx : 2func main() {x 3fmt.Println(x)
} 编译错误x : 2 不能在函数体外使用 x 3 没有指定类型除非使用 x : 3 进行类型推导。 如何使用变量声明块至少三个变量 package mainimport fmtvar (x bool falsey int 0z string false
)func main() {fmt.Printf(The type of x: %T. The value of x: %v\n, x, x)fmt.Printf(The type of y: %T. The value of y: %v\n, y, y)fmt.Printf(The type of z: %T. The value of z: %v\n, y, y)
} 变量块配合 go fmt 格式化之后的代码对齐的非常工整强迫症的福音。 Go 的基础面试题也蛮多的我们先从基础的开始今后后继续更新相关面试题难度也会逐渐提高感兴趣的朋友请持续关注。#GO #面试 往期推荐 k8s入门到实战--跨服务调用 k8s 入门到实战--部署应用到 k8s 使用 SQL 的方式查询消息队列数据以及踩坑指南 VictoriaLogs一款超低占用的 ElasticSearch 替代方案 k8s 常见面试题 鼓励一下 赞完再走