-
Five things that make Go fast
所属栏目:[大数据] 日期:2020-12-16 热度:128
Anthony Starks has remixed my original Google Present based slides using his fantastic Deck presentation tool. You can check out his remix over on his blog,mindchunk.blogspot.com.au/2014/06/remixing-with-deck. I was recently invited to giv[详细]
-
Golang Read File line by line
所属栏目:[大数据] 日期:2020-12-16 热度:163
学习什么语言都得从读文件开始,好像记得一个大神说过计算机编程就是"打开文件,操作,关闭文件"。初学Golang就记一下go语言的文件操作 Read File func main(){ rw,err := os.Open("") if err != nil { panic(err) } defer rw.Close() rb := bufio.NewReader[详细]
-
golang学习的点点滴滴:数组切片使用
所属栏目:[大数据] 日期:2020-12-16 热度:185
funcmain(){arr:=[10]int{1,2,3,4,5,6,7,8,9,10}varslice1[]int=arr[:5]//取数组前5个slice2:=arr[5:]//取数组后5个slice3:=make([]int,5)//make一个切片,初始化前5个为0mySlice2:=make([]int,10)//make一个切片,初始化前5个为0,初始容量为10mySlice3:=[]i[详细]
-
golang学习的点点滴滴:map使用
所属栏目:[大数据] 日期:2020-12-16 热度:77
packagemainimport"fmt"typePersonstruct{IDstringNamestringAddrstring}funcmain(){varpersonsmap[string]Person=make(map[string]Person)persons["123"]=Person{"123","heihei","haha"}p,ok:=persons["123"]ifok{fmt.Println(p.Name)}fmt.Println("----")p[详细]
-
golang学习的点点滴滴:if、switch使用
所属栏目:[大数据] 日期:2020-12-16 热度:76
funcmain(){ifa:=0;a==0{fmt.Println(a)}fmt.Println("-----")b:=0switchb{case1:fmt.Println(1)case0:fallthroughcase2:fmt.Println("heihei")}fmt.Println("-----")switch{caseb1b10:fmt.Println("hahah")caseb-2b3:fmt.Println("ok")}}[详细]
-
golang学习的点点滴滴:for使用
所属栏目:[大数据] 日期:2020-12-16 热度:157
funcmain(){i:=0for{i++;ifi10{break;}fmt.Println(i)}fmt.Println("-----------")arr:=[5]int{1,2,3,4,5}fori,j:=0,len(arr)-1;ij;i,j=i+1,j-1{arr[i],arr[j]=arr[j],arr[i]}for_,res:=rangearr{fmt.Println(res)}}[详细]
-
golang学习的点点滴滴:函数的使用
所属栏目:[大数据] 日期:2020-12-16 热度:102
packagemainimport("fmt""errors")funcmain(){res,err:=Add(1,2)ifnil==err{fmt.Println(res)}_,e:=Add(1,-5)fmt.Println(e)}funcAdd(a,bint)(resint,errerror){ifb0{err=errors.New("error")return//返回返回值列表的值,没赋值的默认}res=a+breturn//返回[详细]
-
golang学习的点点滴滴:可变参数的使用
所属栏目:[大数据] 日期:2020-12-16 热度:137
funcmain(){Func1(1,2,3,4)}funcFunc1(args...int){for_,res:=rangeargs{fmt.Println(res)}Func2(args...)Func3(args[2:]...)}funcFunc2(args...int){fmt.Println("----")for_,res:=rangeargs{fmt.Println(res)}}funcFunc3(args...int){fmt.Println("----")f[详细]
-
golang学习的点点滴滴:可变参数2(interface)
所属栏目:[大数据] 日期:2020-12-16 热度:152
funcmain(){Print(1,"hello",55.9)}//表示可以传任意值funcPrint(args...interface{}){for_,res:=rangeargs{switchres.(type){caseint:fmt.Println(res,"isint")casefloat64:fmt.Println(res,"isfloat64");casestring:fmt.Println(res,"isstring")}}}[详细]
-
golang学习的点点滴滴:匿名函数
所属栏目:[大数据] 日期:2020-12-16 热度:55
import("fmt""errors")funcmain(){f:=func(a,bint)(resint,errerror){ifb0{err=errors.New("err")return}res=a+breturn}res,err:=f(1,2)ifnil==err{fmt.Println(res)}}[详细]
-
golang学习的点点滴滴:闭包
所属栏目:[大数据] 日期:2020-12-16 热度:196
funcmain(){j:=10a:=func()(func()){i:=5returnfunc(){fmt.Println("i=",i,"j=",j)}}()a()j++a()b:=func(ffunc())(func()){f()returnfunc(){fmt.Println("heihei")}}b(func(){fmt.Println("hahaha")})()}[详细]
-
golang学习的点点滴滴:指针,地址,形参,实参
所属栏目:[大数据] 日期:2020-12-16 热度:71
学习Go语言的过程中,会发现它的指针,地址,还有函数参数跟平常我们理解的不太一样. 上代码: package main //学习指针用法 import ( "fmt" ) func main() { var i int; // i 的类型是int型 var p *int; // p 的类型是[int型的指针] i = 1; // i 的值为 1; p =[详细]
-
golang学习的点点滴滴:异常机制
所属栏目:[大数据] 日期:2020-12-16 热度:83
funcmain(){//defer必须在异常抛出之前//下面如果有异常抛出(或人为panic)//则停止往下执行,跳转到defer后的代码块进行收尾工作//即便不会抛出异常,最后也会执行defer后的代码进行收尾//用recover处理异常信息,当err为空时,则证明没有任何异常抛出//如[详细]
-
golang学习的点点滴滴:异常处理 defer, panic, recover
所属栏目:[大数据] 日期:2020-12-16 热度:95
Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,甚至一个小小的错误都抛出一个异常。在Go语言中,使用多值返回来返[详细]
-
golang学习的点点滴滴:flag包解析命令行参数
所属栏目:[大数据] 日期:2020-12-16 热度:163
import("fmt""flag")funcmain(){varin*string=flag.String("in","infile","inputinfile...")varout*string=flag.String("out","outfile","inputoutfile...")varop*string=flag.String("op","op..","ops...")//命令行使用xxx.exe-inthisisin-outthisisout-opt[详细]
-
golang学习的点点滴滴:range使用总结
所属栏目:[大数据] 日期:2020-12-16 热度:129
1、当range作用于string时, 第一个返回值为index,第二次是char str := "hello world" for index,ch := range str { fmt.Printf("%d --- %cn",index,ch) } 2、当range作用于array时, 第一个返回值为index,第二次是value func PrintArray(array [5]int) { f[详细]
-
golang学习的点点滴滴:读写文件(面向过程版)
所属栏目:[大数据] 日期:2020-12-16 热度:140
packagemainimport("fmt""bufio""io""os""flag""strconv")//使用命令行-in默认为infilevarin*string=flag.String("in","infile","inputfilename...")varout*string=flag.String("out","outfile","outputfilename...")funcmain(){//解析命令行flag.Parse()def[详细]
-
golang学习的点点滴滴:读写文件(面向对象版)
所属栏目:[大数据] 日期:2020-12-16 热度:120
packagemainimport("fmt""bufio""io""os""flag""strconv")//定义一个结构体typeReadWritestruct{In*stringOut*string}//定义初始化方法func(rw*ReadWrite)Init(){rw.In=flag.String("in","in","in")rw.Out=flag.String("out","out","out")flag.Parse()}//定[详细]
-
golang学习的点点滴滴:利用组合实现继承
所属栏目:[大数据] 日期:2020-12-16 热度:75
packagemainimport"fmt"typeBasestruct{Namestring}func(b*Base)SetName(namestring){b.Name=name}func(b*Base)GetName()string{returnb.Name}//组合,实现继承typeChildstruct{baseBase//这里保存的是Base类型}//重写GetName方法func(c*Child)GetName()stri[详细]
-
golang学习的点点滴滴:匿名字段
所属栏目:[大数据] 日期:2020-12-16 热度:113
定义一个struct,定义的时候是字段名与其类型一一对应,实际上Go语言支持只提供类型,而不写字段名的方式,也就是匿名字段,或称为嵌入字段。 当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct。 让我们[详细]
-
golang学习的点点滴滴:struct匿名字段
所属栏目:[大数据] 日期:2020-12-16 热度:63
packagemainimport"fmt"typeBasestruct{NamestringAgeint}typeChildstruct{Base//匿名字段,默认把Base的所有字段都继承过来了。这样看起来才像真正的继承Ageint}funcmain(){c:=new(Child)c.Name="hello"//可以直接使用Base中的字段c.Age=20//如果有重复的,[详细]
-
golang学习的点点滴滴:接口
所属栏目:[大数据] 日期:2020-12-16 热度:138
packagemain//定义一个接口//有两个方法//注意:方法不能加functypeIFileinterface{Read(filestring)(buf[]byte)Write(filestring,buf[]byte)}typeIReaderinterface{Read(filestring)(buf[]byte)}typeIWriterinterface{Write(filestring,buf[]byte)}//定义一[详细]
-
golang学习的点点滴滴:接口复制和接口查询
所属栏目:[大数据] 日期:2020-12-16 热度:97
packagemainimport"fmt"typeIFileinterface{Read()Write()}typeIReaderinterface{Read()}typeFilestruct{}func(f*File)Read(){}func(f*File)Write(){}funcmain(){f:=new(File)varf1IFile=f//ok因为FIle实现了IFile中的所有方法varf2IReader=f1//ok因为IFile[详细]
-
golang学习的点点滴滴:类型查询
所属栏目:[大数据] 日期:2020-12-16 热度:70
packagemainimport"fmt"funcmain(){variinterface{}=12switchv:=i.(type){caseint:fmt.Println(v,"int类型")casestring:fmt.Println(v,"string类型")}}[详细]
-
golang学习的点点滴滴:接口组合
所属栏目:[大数据] 日期:2020-12-16 热度:151
packagemainimport"fmt"typeIReaderinterface{Read(filestring)[]byte}typeIWriterinterface{Write(filestring,data[]byte)}//接口组合,这些默认就继承了Reader和Writer中的抽象方法typeIReadWriterinterface{IReaderIWriter}typeReadWriterstruct{}func(rw[详细]
