亨利空间

哼哼哈嘿... 开始使用

Part 12 - Go 语言学习 - 包和封装

包和封装名字一般使用驼峰法首字母大写:public 首字母小写:private 包的定义每个目录一个包 main 包包含可执行入口为结构定义的方法必须放在一个包内可以是不同的文件 5.示例代码 packagetreeimport("fmt")//定义结构体 typeNodestruct{ValueintLeft,Right*Node}//打印值 func(tree*Node)Print(){fmt.Println(

Part 11 - Go 语言学习 - 面向对象

面向对象 go 语言仅支持封装,不支持继承和多态 go 语言没有 class,只有 struct 值接收者和指针接收者要改变内容,必须使用指针接收者结构过大也考虑使用指针接收者 packagemainimport("fmt")//定义结构体 typetreeNodestruct{ValueintLeft,Right*treeNode}//打印值 func(tree*treeNode)print(){fmt.Printl

Part 10 - Go 语言学习 - 字符和字符串处理

字符和字符串处理字符串循环 a:="abcdef"s:="see,今天天气真好"//循环,byte 相当于 int8,,一个字符占 1 个字节,拿到字符串中的字符,字符串的底层就是切片 for_,v:=range[]byte(a){fmt.Printf("%c\n",v)}//utf8 的循环,rune 相当于 int32,一个字符占 4 个字节,能够满足 utf8 三个字节的需求 fori,v:=range[]rune(s)

Part 8 - Go 语言学习 - 指针

指针指针不能运算 varaint=2varpa*int=&a*pa=3fmt.Println(a)参数传递,go 语言是值传递通过指针传递来实现一种引用传递的效果定义 a,b 为指针类型,调用时参数取地址,或者不用指针用 return 出去交换也可以示例 1:funcswap(a,b*int){*b,*a=*a,*b}a:=3b:=4swap(&a,&b)fmt.Println(a,b)示例 2:funcswap(

Part 7 - Go 语言学习 - 函数

函数函数由 func 关键字定义 funceval(a,bint,opstring)int{switchop{case"+":result=a+bcase"-":result=a-bcase"*":result=a*bcase"/":result=a/bdefault:panic("unsurported")}returnresult}函数可以返回多个值函数作为参数,函数式编程,函数是一等公民 funcap

Part 6 - Go 语言学习 - 循环控制语句

循环控制语句 forfor 的条件里不需要括号 for 的条件里可以省略初始条件,结束条件,递增表达式 sum:=0fori:=1;i<=100;i++{sum+=i}省略初始条件 funcconvertToBin(nint)string{result:=""for;n>0;n/=2{lsb:=n%2result=strconv.Itos(lsb)+result}}省略递增条件 funcprintFile(fil

Part 5 - Go 语言学习 - 流程控制语句

流程控制语句 if 条件语句 if 条件句不需要括号 if...elseif...else...ifv>100{return100}elseifv>10{return10}else{return0}if 条件句可以支持多个表达式,用分号;分隔 if 的条件里可以赋值,并且赋值的变量作用域就在这个 if 条件句里 ifcontents,err:=ioutil.ReadFile(name);err!=nil{fmt.Prin

Part 4 - Go 语言学习 - 常量类型

常量的定义 1,关键字 constconstnamestring="file.txt"//数值不定类型,可以当作是 int 也可以是 floatconsta,b=3,42,常量名不限制大小写 const(a=0B=1c=2d=3)3,枚举类型,可以用 iota 自增值来定义 const(a=iota//0_//1c//2d//3)//定义中也可以是运算值 const(b=1<<(10*iota)kbmbgbtbpb)