ARM|Golang 1.17,新功能介绍( 五 )
带有前导、尾随或多个的无效元素或属性名称冒号现在不加修改地存储到 Name.Local字段 。
flag
如果指定了无效名称 , 标志声明现在会触发panic 。
go/build
新的Context.ToolTags字段包含适合当前Go的构建标签工具链配置 。
go/format
Sourc和Nod现在运行同步//go:build行与//+build行 。如果一个文件只有 // +build线 , 将移动到文件中的适当位置 , 并自动添加匹配的//go:build行 。 否则 , //+build行将根据任何现有的//go:build行调整 。
go/parser
新的SkipObjectResolution Modevalue 指示解析器解析时跳过这些指令 。 这可以提高解析速度 。
iamge
图像类型(RGBA Gray16等等)启用一个新的RGBA64Image接口 。 之前实现的具体类型draw.Image现在也实施draw.RGBA64Image , 一种新image/draw打包 。
io/fs
新的FileInfoToDirEntry函数转换一个FileInfo为DirEntry 。
math
math包现在定义了另外三个常量:MaxUintMaxInt和MinInt 。 对32位系统 , 其值范围为2^32-1 2^31-1和-2^31 。 对64 位系统 , 其值范围为2^64 - 1 2^63-1和-2^63 。
mime
在Unix系统上 , MIME 类型表现在从本地系统的共享MIME信息数据库 。
mime/multipart
现在适用filepath.Base到返回值 。 减轻了潜在的路径遍历漏洞接受多部分消息的应用程序 , 例如net/http调用的服务器Request.FormFile 。
net
新的IP.IsPrivate方法返回地址是否是为RFC 1918标准的私有IPv4地址或根据RFC 4193 标准的的本地 IPv6 地址 。
Go DNS 解析器解析纯IPv4或纯IPv6网络的地址时仅发送一个DNS查询 , 而不是查询两个地址族 。
ErrClosed sentine错误和ParseError错误类型现在这net.Error接口实现 。
ParseIP和ParseCIDR函数现在拒绝包含零开始的十进制IPv4地址 。 这些组件在模块中被解释为十进制 , 但是在操作系统会将其视为八进制 。 如果使用Go应用程序验证IP地址 , 这种不匹配可能会导致安全问题然后以原始形式与非Go应用程序一起使用 , 这些应用程序将组件解释为八进制 。 一般来说 , 建议在验证后始终重新编码值 , 以避免该类问题 。
net/http
在客户端或服务器中执行 TLS 握手时 , net/http包现在使用新的(*tls.Conn).HandshakeContext和Request上下文 。
设置Server ReadTimeout或者WriteTimeout字段为负值现在表示没有超时而不是立即超时 。
ReadReques功能现在当请求有多个Host标头时返回错误 。
在生成指向URL的重定向时 , ServeMux现在总是使用相对URL Location标题 。此前会回显请求的完整URL , 这可能会导致意外 。
在解释由处理的某些HTTP标头时 , 非ASCII 字符现在被忽略或拒绝 。
如果Request.ParseForm调用时返回错误Request.ParseMultipartForm 后者现在继续填充Request.MultipartForm 。
net/http/httptest
ResponseRecorder.WriteHeader现在当提供的代码不是有效的三位数HTTP状态代码时会触发panic 。 这符合的ResponseWriter实现的行为 。
net/url
新方法Values.Has报告是否设置了查询参数 。
os
File.WriteString方法已优化为不复制输入字符串 。
reflect
新的Value.CanConver方法报告值是否可以转换为类型 。 这可用于在将切片转换为切片时避免恐慌 如果切片太短 , 则为数组指针类型 。 以前使用就足够了 Type.ConvertibleTo为此 , 但新方法允许的从切片到数组的转换即使类型是可转换的 , 指针类型也可能会触发pannic
新的StructField.IsExported和Method.IsExported方法报告是否导出结构字段或类型方法 。 它们提供了一种更具可读性的替代方法来检查PkgPath是否为空 。
新的VisibleFields函数返回结构类型中的所有可见字段 , 包括匿名结构成员内的字段 。
ArrayOf函数在以负长度调用时候 , 会触发panic 。
相关经验推荐
- 华为|华为、清华携手,2022年OpenHarmony接入太空,击碎美国星链阴谋
- harmonyos|蓝牙耳机哪款比较好,适合寒假游戏放松的几款蓝牙耳机
- 高通骁龙|华硕、TCL推出Win 11 ARM笔记本,搭载高通骁龙芯片
- 摄像头|华为Mate 50和HarmonyOS 3.0将于6月推出
- 龙芯|微信力挺国产芯片、国产系统,已支持ARM、X86、龙芯三大指令集
- AMD|NVIDIA斥资400亿收购ARM失败,而AMD 350亿收购赛灵思要成
- 苹果|华为公布新海思芯片,全新架构CPU加持,不再受ARM“控制”
- harmonyos|又有超120款机型全面升鸿蒙OS正式版!
- harmonyos|天玑9000正式发布!红米K50宇宙首批搭载,CPU性能已超新骁龙8?
- ARM|ARM要一统天下?华为已掘了它的后路
