自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊Golang 基礎(chǔ)面試題,你學(xué)會幾個?

開發(fā) 前端
這幾年隨著云原生的興起,大部分后端開發(fā)者,特別是 Java 開發(fā)者都或多或少的想學(xué)習(xí)一些 Go 相關(guān)的技能,所以今天分享的內(nèi)容比較初級,適合 Go 語言初學(xué)者。

在之前的文章中分享了 k8s 相關(guān)的面試題,本文我們重點來討論和 k8s 密切相關(guān)的 Go 語言面試題。

這幾年隨著云原生的興起,大部分后端開發(fā)者,特別是 Java 開發(fā)者都或多或少的想學(xué)習(xí)一些 Go 相關(guān)的技能,所以今天分享的內(nèi)容比較初級,適合 Go 語言初學(xué)者。

本文內(nèi)容依然來自于這個倉庫https://github.com/bregman-arie/devops-exercises

以下是具體內(nèi)容:

()的內(nèi)容是我的補充部分。

Go 101

Go 語言有哪些特點

  • Go 是一種強類型靜態(tài)語言,變量的類型必須在聲明的時候指定(但可以使用類型推導(dǎo)),在運行時不能修改變量類型(與 Python 這類動態(tài)類型語言不同)。
  • 足夠的簡單,通常一個周末就能學(xué)會
  • 編譯速度夠快
  • 內(nèi)置并發(fā)(相對于 Java 的并發(fā)來說非常簡單)
  • 內(nèi)置垃圾收集
  • 多平臺支持
  • 可以打包到一個二進(jìn)制文件中,所有運行時需要依賴的庫都會被打包進(jìn)這個二進(jìn)制文件中,非常適合于分發(fā)。

Go 是一種編譯型的靜態(tài)類型語言,正確還是錯誤

正確?

為什么有些函數(shù)是以大寫字母開頭的

這是因為 Go 語言中首字母大寫的函數(shù)和變量是可以導(dǎo)出的,也就是可以被其他包所引用;類似于 Java 中的 public 和 private 關(guān)鍵字。

變量和數(shù)據(jù)類型

簡潔和常規(guī)聲明變量方式

package main

import "fmt"

func main() {
  x := 2 // 只能在函數(shù)內(nèi)使用,自動類型推導(dǎo)
  var y int = 2

  fmt.Printf("x: %v. y: %v", x, y)
}

正確?還是錯誤?

  • 可以重復(fù)聲明變量?(強類型語言的特性)
  • 變量一旦聲明,就必須使用?(避免聲明無效變量,增強代碼可讀性)

下面這段代碼的結(jié)果是什么?

package main

import "fmt"

func main() {
    var userName
    userName = "user"
    fmt.Println(userName)
}

編譯錯誤,變量 userName 沒有聲明類型;修改為這樣是可以的:

func main() {
    var userName string
    userName = "user"
    fmt.Println(userName)
}

var x int = 2 and x := 2 這兩種聲明變量的區(qū)別

結(jié)果上來說是相等的,但 x := 2  只能在函數(shù)體類聲明。

下面這段代碼的結(jié)果是聲明?

package main

import "fmt"

x := 2

func main() {
    x = 3
    fmt.Println(x)
}

編譯錯誤,x := 2  不能在函數(shù)體外使用, x = 3 沒有指定類型,除非使用 x := 3 進(jìn)行類型推導(dǎo)。

如何使用變量聲明塊(至少三個變量)

package main

import "fmt"

var (
  x bool   = false
  y int    = 0
  z 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 格式化之后的代碼對齊的非常工整,強迫癥的福音。

責(zé)任編輯:武曉燕 來源: crossoverJie
相關(guān)推薦

2021-03-04 09:35:54

thisJavaScript開發(fā)

2021-01-22 11:58:30

MySQL數(shù)據(jù)庫開發(fā)

2024-02-28 07:35:32

SQL查詢數(shù)據(jù)庫

2021-03-01 09:39:34

閉包JavaScript開發(fā)

2024-02-26 15:35:44

2024-01-01 15:30:59

JavaScriptWeb 應(yīng)用程序開發(fā)

2020-02-06 08:58:09

程序員技術(shù)數(shù)據(jù)庫

2020-06-04 14:40:40

面試題Vue前端

2023-11-13 07:37:36

JS面試題線程

2024-04-26 08:10:49

2011-03-24 13:27:37

SQL

2022-11-16 09:04:36

SQL查詢SELECT

2018-02-25 16:35:32

前端CSS面試題

2010-04-15 11:54:55

面試

2021-03-23 07:56:54

JS基礎(chǔ)同步異步編程EventLoop底層

2009-06-06 18:34:05

java面試題

2009-06-06 18:36:02

java面試題

2019-11-26 10:30:11

CSS前端面試題

2015-09-02 09:32:56

java線程面試

2014-09-19 11:17:48

面試題
點贊
收藏

51CTO技術(shù)棧公眾號