InfraPub 为您找到相关结果 8

Rust 1.39.0 发布,async/.await 稳定了

// ^------ .iter() implicitly takes a reference to nums. => { drop(nums); // ----------- nums was bound by move and so we have ownership. } _ => unreachable!(), } } Rust 1.39 中,上面的代码段现在已被编译器接受,此特性可以为整体的 match 表达式带来更流畅、更一致的体验。 函数参数的属性 现在允许在函数、闭包和函数指针的参数上使用属性。 比如以往这样编写: #[cfg(windows)] fn len(slice: &[u16]) -> usize { slice.len() } #[cfg(not(windows))] fn len(slice...阅读全文

博文 2019-11-11 09:44:43 debian.cn

Go 1.8 正式发布 标准库有显著变化和性能提升

务器现在还支持正常关机了,允许服务器通过在服务所有正在运行的请求之后关闭,而最小化停机时间。 上下文(添加到Go 1.7中的标准库)提供了取消和超时机制。Go 1.8在标准库中添加了更多对上下文的支持,包括数据库/ sql和net包以及net / http包中的Server.Shutdown。 现在使用新添加的Slice函数在排序包中对切片进行排序更简单。例如,要通过“名称”字段对结构体片段进行排序: sort.Slice(s,func(i,j int)bool {return s [i] .Name 更多新版本的添加、改进和修复内容,以及上面列出的改进的详细信息请查看Go 1.8发行说明。 为了庆祝发布,世界各地的Go用户组都在本周举办发布会,这已经成为Go社区的一个传统,所以如果你错过了...阅读全文

博文 2021-01-28 17:50:22 debian.cn

Golang后端面试题目

技术一面 基础面试 一面是通过电话直接沟通。 go的调度go struct能不能比较go defer(for defer)select可以用于什么context包的用途client如何实现长连接主协程如何等其余协程完再操作slice,len,cap,共享,扩容map如何顺序读取实现set实现消息队列(多生产者,多消费者)大文件排序基本排序,哪些是稳定的http get跟headhttp 401,403http keep-alivehttp能不能一次连接多次请求,不等后端返回tcp与udp区别,udp优点,适用场景time-wait的作用数据库如何建索引孤儿进程,僵尸进程死锁条件,如何避免linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程git文件版本,使用顺序...阅读全文

博文 2020-04-13 13:13:00 2020腾讯社招

深入学习golang — channel

var ch2 <-chan int //ch2只能读 channel是类型相关的,也就是一个channel只能传递一种类型。例如,上面的ch只能传递int。 在go语言中,有4种引用类型:slice,map,channel,interface。 Slice,map,channel一般都通过make进行初始化: ci := make(chan int) // unbuffered channel of integers cj := make(chan int, 0) // unbuffered channel of integers cs := make(chan *os.File, 100) // buffered channel of pointers to Files 创建channel时...阅读全文

博文 2021-01-25 12:39:17 博客园

Go 泛型的括号选择:[ ] or ( )

( ) 和 [ ] 可供选择。然而缺少修饰的方括号会在数组和 slice 的类型声明中造成歧义,在解析索引表达式时也会引起小程度的歧义。因此在设计之初他们决定使用小括号,因为小括号似乎更符合 Go 语言的风格,而且看起来问题最少。 为了使小括号正常工作,并且为了向后兼容,他们表示不得不在类型参数列表中引入type关键字。最后,他们在参数列表、复合字面量和嵌入类型中发现了额外的解析歧义,而这些歧义需要嵌套更多的小括号来解决。不过即便如此,他们还是决定继续使用小括号,因为当时还有更重要的设计问题需要解决。 现在他们决定重新考虑这个最初的决定。如果仅使用方括号声明类型参数,那么声明数组的方式如下所示: type A [N]E 不过这就无法与泛型的声明进行区分: type A[N] E 但如果能接受额外的...阅读全文

博文 2020-07-16 10:38:01 debian.cn

Ruby 2.5.0 稳定版发布

法代码覆盖。分支代码覆盖指检查哪些分支被覆盖到,哪些没有。而方法覆盖在指可以测量方法是否被调用。基于这些新特性运行你的测试用例,你可以精确地知道哪些分支和方法被运行,并更精确地计算测试的代码覆盖程度。[功能 #13901] 新增 Hash#slice [功能 #8499] 和 Hash#transform_keys。[功能 #13583] Struct.new 现在可以被用于创建含有关键字参数的类。[功能 #11925] Enumerable#any?, all?, none? 和 one? 可以接受一个模式作为参数。[功能 #11286] 删除顶层常量查找。[功能 #11547] 我们最喜爱的库之一 pp.rb,现已自动加载。无需手动写 require "pp" 来加载。[功能...阅读全文

博文 2017-12-25 21:59:41 debian.cn

Go1.16 新特性:一文快速上手 Go embed

embed.FS func main() { print(s) print(string(b)) data, _ := f.ReadFile("hello.txt") print(string(data)) } 输出结果: 吃煎鱼 吃煎鱼 吃煎鱼 我们同时在一个代码文件中进行了多个 embed 的注解声明。 并且针对 string、slice、byte、fs 等多种类型进行了打包,也不需要过多的处理,非常便利。 拓展用法 除去基本用法完,embed 本身在指令上也支持多种变形: //go:embed hello1.txt hello2.txt var f embed.FS func main() { data1, _ := f.ReadFile("hello1.txt") fmt.Println...阅读全文

博文 2021-02-17 08:44:12 CSDN

Go 1.16 即将发布,这些变更你需要知道

slice 的扩容条件是 len,在最新的代码中,已经改为了以 cap 属性作为基准: // src/runtime/slice.go if cap > doublecap { newcap = cap } else { // 这是以前的代码:if old.len < 1024 { // 下面是 Go1.16rc1 的代码 if old.cap < 1024 { newcap = doublecap } 以官方的 test case 为例: func main() { const N = 1024 var a [N]int x := cap(append(a[:N-1:N], 9, 9)) y := cap(append(a[:N:N], 9)) println(cap(x), cap(y...阅读全文

博文 2021-02-17 08:52:12 CSDN博客