婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > golang1.16新特性速覽(推薦)

golang1.16新特性速覽(推薦)

熱門標簽:不封卡外呼系統 宿遷便宜外呼系統代理商 寧波語音外呼系統公司 地圖標注免費定制店 重慶慶云企業400電話到哪申請 上海極信防封電銷卡價格 鄭州智能語音電銷機器人價格 湛江crm外呼系統排名 仙桃400電話辦理

golang1.16也在今天正式發布了。

原定計劃是2月1號年前發布的,不過遲到也是golang的老傳統了,正好也趁著最后的假期快速預覽一下golang1.16的新特性吧。

語言內建的資源嵌入支持

之前市面上已經有很多把今天文件嵌入golang二進制程序的工具了,這次golang官方將這一功能加入了embed標準庫,從語言層面上提供了支持。

我之前以及寫了embed的使用教程,可以看這里。

這兒還有一篇官方推薦的教程。

支持arm64

m1芯片可謂是最近的焦點,golang自然也不會落下。

在golang1.16中官方已經支持darwin/arm64平臺,cgo和編譯成c語言可調用的動態/靜態鏈接庫的功能也已支持。同樣受益的還有bsd家族的arm64版本。

現在可以在新版mac上嘗試golang了。

不過plugin模式的支持仍在進行中,想要完整支持arm64還需要一段時間。

go modules的新特性

本次更新依舊帶來了許多modules的新特性。

GO111MODULE現在默認為on

1.16開始默認啟用modules,這在1.15的時候已經預告過了。現在GO111MODULE的默認值為on。

不過golang還是提供了一個版本的適應期,如果你還不習慣modules,可以把GO111MODULE設置回auto。在1.17中這個環境變量將會被刪除。

都1202年了,也該學學go modules怎么用了。

go build不再更改mod相關文件

以前的教程里我提到過go build會自動下載依賴,這會更新mod文件。

現在這一行為被禁止了。想要安裝、更新依賴只能使用go get命令,go build和go test將不會再做這類工作。

go install的變化

go install在1.16中也有了不小的變化。

首先是通過go install my.module/tool@1.0.0 這樣在module末尾加上版本號,可以在不影響當前mod的依賴的情況下安裝golang程序。

go install是未來唯一可以安裝golang程序的命令,go get的編譯安裝功能現在可以靠-d選項關閉,而未來編譯安裝功能會從go get移除。

也就是說go的命令各司其職,不再長臂管轄了。

新的GOVCS環境變量

新的GOVCS環境變量指定了golang用什么版本控制工具下載源代碼。

其格式為:GOVCS=module prefix>:tool name>,[module prefix>:tool name>, ...]

其中module prefix為github.com等,而tool name就是版本控制工具的名字,比如git,svn。

一個更具體的例子是:GOVCS=github.com:git,evil.com:off,*:git|hg

module prefix也可以用*通配任何模塊的前綴。

tool name還可以設置為all和off,all代表允許使用任何可用的工具,而off則表示不允許使用任何版本控制工具。

不過現在設置為off的模塊的代碼仍然可能會被下載。

更多的細節可以參考go help vcs

相對路徑導入不在被允許

golang1.16開始禁止import導入的模塊以.開頭,模塊路徑中也不允許出現任何非ASCII字符,所以下面的代碼不再合法:

import (
 "./tools/factory"
 "../models/user"
 "some.pkg.com/殺馬特/音樂工廠"
)

對非ASCII字符一如既往的不友好,不過也只能按規矩辦事了。

標準庫的變化

golang1.16除了對標準庫進行通常的功能更新和修復,還引入了一些重大變化。

testing

testing包主要的變化是在測試用例里調用os.Exit(0)會從程序終止變成測試失敗。

比如這個:

package main

import (
 "os"
 "testing"
)

func TestXXX(t *testing.T) {
 t.Log("exit")
 os.Exit(0)
}

現在會是這樣的輸出:

$ go test -v a_test.go

=== RUN TestXXX
 a_test.go:9: exit
--- FAIL: TestXXX (0.00s)
panic: unexpected call to os.Exit(0) during test [recovered]
  panic: unexpected call to os.Exit(0) during test

goroutine 18 [running]:
testing.tRunner.func1.2(0x51b920, 0x56cc28)
  /usr/local/go/src/testing/testing.go:1144 +0x332
testing.tRunner.func1(0xc000082600)
  /usr/local/go/src/testing/testing.go:1147 +0x4b6
panic(0x51b920, 0x56cc28)
  /usr/local/go/src/runtime/panic.go:965 +0x1b9
os.Exit(0x0)
  /usr/local/go/src/os/proc.go:68 +0x6d
command-line-arguments.TestXXX(0xc000082600)
  /tmp/a_test.go:10 +0x76
testing.tRunner(0xc000082600, 0x54df18)
  /usr/local/go/src/testing/testing.go:1194 +0xef
created by testing.(*T).Run
  /usr/local/go/src/testing/testing.go:1239 +0x2b3
FAIL command-line-arguments 0.004s
FAIL

ioutils包已經廢棄

1.16已經標記io/ioutil為廢棄,函數被轉移到了os和io這兩個包里,具體見下表:

ioutil舊函數 新函數
Discard io.Discard
NopCloser io.NopCloser
ReadAll io.ReadAll
ReadDir os.ReadDir
ReadFile os.ReadFile
WriteFile os.WriteFile
TempDir os.MkdirTemp
TempFile os.CreateTemp

現在開始可以做移植了。

tcp半連接隊列擴容

在Linux kernel 4.1以前,golang設置tcp的listen隊列的長度是從/proc/sys/net/core/somaxconn獲取的,通常為4096。

而在4.1以后golang會直接設置半連接隊列的長度為2^32 - 1也就是4294967295。

更大的半連接隊列意味著可以同時處理更多的新加入請求,而且不用再讀取配置文件性能也會略微提升。

重大更新io/fs

1.16除了支持嵌入靜態資源外,最大的變化就是引入了io/fs包。

golang認為文件的io操作是依賴于文件系統(filesystem,fs)的,所以決定模仿Linux的vfs做一套基于fs的io接口。

這樣做的目的有三個:

  1. os包應該專注于和系統交互而不是包含一部分io接口
  2. io包和os包分別包含了io接口的一部分,導致互相依賴職責不清晰
  3. 可以把有關聯的一部分文件或者數據組成虛擬文件系統,供通用接口處理提升程序的可擴展性,比如zip打包的文件

所以io/fs誕生了。

fs包中主要包含了下面幾種數據類型(都是接口類型):

名稱 作用
FS 文件系統的抽象,有一個Open方法用來從FS打開獲取文件數據
DirEntry 描述目錄項目(包含目錄自身)的數據結構
File 描述文件數據的結構,包含Stat,Read,Close方法
ReadDirFile 在File的基礎上支持ReadDir,可以代表目錄自身
FileMode 描述文件類型,比如是通常文件還是套接字或者是管道
FileInfo 文件的元數據,例如創建時間等

其中有一些接口和os包中的同名,實際上是os包引入fs包后起的別名。

對于FS,還有以下的擴展,以便增量描述文件系統允許的操作:

名稱 作用
GlobFS 增加Glob方法,可以用通配符查找文件
ReadDirFS 增加ReadDir方法,可以遍歷目錄
ReadFileFS 增加ReadFile方法,可以用文件名讀取文件所有內容
StatFS 增加Stat方法,可以獲得文件/目錄的元信息
SubFS 增加Sub方法,Sub方法接受一個文件/目錄的名字,從這個名字作為根目錄返回一個新的文件系統對象

fs包還提供了諸如Glob,WalkDir等傳統的文件操作接口。

fs的主要威力在于處理zip、tar文件,以及http的文件接口時可以大幅簡化代碼。而且新的embed靜態資源嵌入也是依賴fs實現的。

因為只是速覽的緣故,無法詳盡介紹io/fs包,你可以參考golang的文檔或這篇文章做進一步了解。

其他改進

其他的改進包括Unicode更新到了13.0、新增加了runtime/metrics包已提供更好更規范的運行時信息等。

同時1.16優化了鏈接器,現在它在linux/amd64上比1.15快了20-25%,內存占用減少了5-15%。

在Windows上已經全面支持了地址空間布局隨機化(ASLR),此前不支持將golang編譯為dll時啟用ASLR。

本次更新中語言本身沒有什么變化。

更多信息可以查看golang1.16 release notes

到此這篇關于golang1.16新特性速覽的文章就介紹到這了,更多相關golang1.16新特性速覽內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 分析MongoDB和MySQL各自的關鍵特性、差別和優勢
  • go特性之數組與切片的問題
  • django 中QuerySet特性功能詳解
  • MongoDB的基本特性與內部構造的講解
  • Django 2.0版本的新特性搶先看!
  • golang中defer的關鍵特性示例詳解
  • Go語言區別于其他語言的特性

標簽:遼寧 安康 西雙版納 青海 儋州 海南 電子產品 物業服務

巨人網絡通訊聲明:本文標題《golang1.16新特性速覽(推薦)》,本文關鍵詞  golang1.16,新特性,新,特性,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang1.16新特性速覽(推薦)》相關的同類信息!
  • 本頁收集關于golang1.16新特性速覽(推薦)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产福利精品导航| 亚洲精品成a人| 麻豆精品一二三| 久久久久久免费| 国产很黄免费观看久久| 免费在线观看精品| 亚洲人亚洲人成电影网站色| 欧美日韩一卡二卡三卡 | 国产精品久久久久久户外露出| 欧美午夜片在线看| 国产精品亚洲一区二区三区妖精 | 亚洲第一激情av| 成人综合激情网| 国产欧美日韩在线观看| 欧美性一二三区| 99在线视频精品| 国产精品亚洲视频| 久久91精品久久久久久秒播| 亚洲免费在线观看视频| 国产喷白浆一区二区三区| 久久久影院官网| 欧美一级视频精品观看| 欧美视频在线不卡| 欧美亚洲自拍偷拍| 日本乱人伦一区| 黄色日韩三级电影| 极品少妇xxxx精品少妇| 国产一区二三区好的| 国产高清成人在线| 国产精品99久久久久久久女警 | 亚洲夂夂婷婷色拍ww47| 亚洲免费在线播放| 国产精品国产a级| 国产精品久久久久久一区二区三区| 91精品国产综合久久福利软件 | 91精品在线免费| 欧美色中文字幕| 国产一区在线不卡| 国产精品一二三| 国产成人亚洲精品狼色在线| 免费高清成人在线| 欧美日韩综合色| 一本色道a无线码一区v| 成人性色生活片免费看爆迷你毛片| 国产成人av电影在线播放| 成人性生交大片免费看视频在线| 高清久久久久久| 99riav久久精品riav| 欧美日韩视频专区在线播放| 日韩手机在线导航| 日本一区二区三区在线不卡| 亚洲黄色尤物视频| 日韩精品五月天| 久久99国产精品尤物| 午夜日韩在线观看| 免费观看在线综合色| 国产成人av一区二区| 3d动漫精品啪啪| 91在线视频播放| 成人免费观看男女羞羞视频| 色综合天天综合网天天看片| 欧美三级一区二区| 久久久久久影视| 亚洲精品欧美激情| 亚洲大型综合色站| 国产乱子伦视频一区二区三区| 日本黄色一区二区| 国产女人aaa级久久久级| 亚洲一区二区三区四区在线 | 亚洲黄色尤物视频| 国产一区二区在线观看视频| 在线免费不卡视频| 国产精品免费丝袜| 国模娜娜一区二区三区| 91麻豆精品国产无毒不卡在线观看 | 婷婷六月综合亚洲| 国产+成+人+亚洲欧洲自线| 51午夜精品国产| 亚洲国产欧美日韩另类综合| 大桥未久av一区二区三区中文| 欧美年轻男男videosbes| 中文字幕第一区第二区| 欧美在线一区二区三区| 91国产视频在线观看| 精品粉嫩超白一线天av| 婷婷久久综合九色综合绿巨人| 成人精品亚洲人成在线| 日韩视频免费观看高清完整版在线观看 | 日本一区中文字幕| 91麻豆国产在线观看| 日韩午夜在线观看视频| 综合激情成人伊人| 精品亚洲porn| 色偷偷久久人人79超碰人人澡| 国产成人午夜精品影院观看视频 | 亚洲国产综合在线| 91精品国产综合久久久久| 26uuu亚洲综合色| 亚洲三级在线免费| 色婷婷av久久久久久久| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲成人先锋电影| 亚洲bt欧美bt精品| 91精品国产综合久久小美女| 久久精品欧美一区二区三区麻豆 | 青青青爽久久午夜综合久久午夜| 亚洲一区二区美女| 欧美日韩成人一区二区| 久久久.com| 成人免费福利片| 国产精品一区二区你懂的| 国产午夜亚洲精品午夜鲁丝片| 日韩视频国产视频| 国产主播一区二区| 日本最新不卡在线| 日韩女优视频免费观看| 日韩欧美在线一区二区三区| 亚洲国产另类精品专区| 日韩理论在线观看| 成人高清免费观看| 欧美日韩在线播放一区| 久久成人久久爱| 美国毛片一区二区| 精品影院一区二区久久久| 欧美日韩国产一级片| 精品国产第一区二区三区观看体验| 免费视频最近日韩| 欧美日韩国产一级| 精久久久久久久久久久| 欧美一区二区美女| 国产成人综合在线观看| 精品国产凹凸成av人网站| 岛国精品在线播放| 国产色产综合色产在线视频| 99国产精品久久久久久久久久久| 久久综合九色综合97_久久久| 亚洲精品国产无天堂网2021| 97成人超碰视| 蜜桃视频一区二区三区在线观看 | 日韩女优视频免费观看| 波多野结衣欧美| 欧美成人三级在线| 夜夜嗨av一区二区三区网页 | 精品成a人在线观看| 91色porny| 国产精品视频免费看| 欧美一区二区视频在线观看2020 | 在线观看av不卡| 亚洲乱码国产乱码精品精可以看| 精品动漫一区二区三区在线观看| 久久99精品一区二区三区三区| 综合网在线视频| 91丨九色丨国产丨porny| 国产在线精品不卡| 国产精品色婷婷| 精品1区2区在线观看| 国产福利不卡视频| 免费的国产精品| 91麻豆国产精品久久| 成人一区二区在线观看| 欧美日韩国产高清一区| 色域天天综合网| 欧美一区二区私人影院日本| 欧美性猛交xxxx黑人交| 色综合久久综合网欧美综合网| 亚洲国产一区二区三区| 中文字幕av一区二区三区高| 色噜噜久久综合| 91黄色激情网站| 免费视频一区二区| 日韩不卡免费视频| 久久你懂得1024| 久久久久国产一区二区三区四区 | 欧美日韩一级黄| a级精品国产片在线观看| 国产精品一区二区果冻传媒| 中文字幕在线播放不卡一区| 中文文精品字幕一区二区| 欧美亚洲动漫制服丝袜| 在线不卡欧美精品一区二区三区| 1区2区3区国产精品| 亚洲一区二区影院| 欧美午夜精品理论片a级按摩| 国产精品动漫网站| 欧美人成免费网站| 亚洲精选一二三| 欧美一区二区在线视频| 成人精品一区二区三区四区 | 国产精品资源站在线| 国产成人a级片| 中文字幕视频一区| 亚洲激情av在线| 精品福利一区二区三区| 国产精品久久久99| 99久久国产综合精品女不卡| 国产一区免费电影| 99精品偷自拍| 欧美性感一区二区三区| 亚洲h动漫在线| 国产精品私人自拍|