golang range遍历是新创建对象还是创建对象的引用,通俗的讲就是range对range出来的对象的修改会不会同步到被遍历的那个数组.先看如下代码: package main import ( "fmt" ) func main() { // int型数组测试 arr := [], , , , } fmt.Println(arr) for _, d := range arr { d = { // 忽略,防止报not used错误 } } fmt.Println(arr) // s…
1.通过range遍历channel内容 package main import ( "fmt" ) func main() { ch := make(chan int) //创建一个无缓存channel //新建一个goroutine go func() { for i := 0; i < 5; i++ { ch <- i //往通道写数据 } //不需要再写数据时,关闭channel close(ch) //ch <- 666 //关闭channel后无法再发送数…
本文参考Roslyn项目中的Issue:#118. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 4. C# 7.0 新特性4: 返回引用 C#早在最初的发行版C# 1.0中(2002年1月),就借鉴并延续了C/C++中指针参数,原生允许将值类型数据的引用(指针)通过标记ref参数的形式,传递到方法体中. 但对于方法内的值类型引用,该如何以引用的方式返回,却一直以来没有一个非常完美的解决方案,…
package main import (  "fmt"  "io/ioutil"  "os"  "path/filepath"  "strings" ) //获取指定目录下的所有文件,不进入下一级目录搜索,可以匹配后缀过滤. func ListDir(dirPth string, suffix string) (files []string, err error) {  files = make([]st…
废话少叙,先上一段代码,猜猜预期的效果. package main import ( "fmt" ) type student struct { Name string Age int } func main() { m := make(map[string]*student) stus := []student{ {Name: "zhou", Age: 24}, {Name: "li", Age: 23}, {Name: "wang&…
代码演示 package main import "fmt" func main() { nums := []int{2, 3, 4} sum := 0 for _, num := range nums { sum += num } fmt.Println("sum:", sum) for i, num := range nums { if num == 3 { fmt.Println("index:", i) } } kvs := map[st…
Go 2.0 新特性展望:详细 go2.0 会有什么新特性呢?下图是一个老外的调侃,他不希望发生这样的事情(please don't make it happen).我倒是希望其中一些实现,比如泛型和操作符重载和多态. Go 1.9 新特性:详细 1,类型别名,type alias 2,新的math/bits 3,新的map类型,Concurrent Map 4,testing Helper 5,monotonic time流失时间计时 6,并行编译,更快的编译速度 Go 1.8 新特性 :详细…
直接上例子: 例子1: package main import( "fmt" ) func main(){ a := map[string]string{ "alice":"11", "bob":"29", "zhangsan":"29", "wang":"35", } tmpRs := map[string][]string{…
range 迭代各种各样的数据结构.让我们来看看如何在我们已经学过的数据结构上使用 rang 吧. package main import "fmt" func main() { 这里我们使用 range 来统计一个 slice 的元素个数.数组也可以采用这种方法. nums := []int{2, 3, 4} sum := 0 for _, num := range nums { sum += num } fmt.Println("sum:", sum) rang…
引用方法并运行 在Java中,方法和构造方法都看作是对象的一种,那么你要引用它(不是调用),则可以用::来引用.用来存储这个引用的类型用@FunctionlaInterface注解来标识. 示例: package fun; /** * @author 施俊杰 * @email shijunjie.me@outlook.com */ public class TestMethods { @FunctionalInterface interface Fun<F1, F2, T> { T myrun…