记录精彩的程序人生

Day 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)

Day 9 - Go 语言学习 - 数组、切片、容器

数组、切片、容器数组的定义和循环 vararr1[5]intarr2:=[3]int{1,3,5}arr3:=[...]int{2,4,6,8,10}//编译器自动识别数组元素个数 vargrid[4][5]int//二维数组 fmt.Println(arr1,arr2,arr3,grid)//数组循环 fori:=0;i<len(arr3);i++{fmt.Println(arr3[i])}//range

Day 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(

Day 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

Day 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

Day 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

Day 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)

Day 3 - Go 语言学习 - 内置变量类型

内建变量类型 bool、string(u)int(u)int8(u)int16(u)int32(u)int64uintptrbyte(8 位)rune(32 位)float32float64complex64complex128 相关知识整理 1.各 int 类型的取值范围如下 int8:-128~127int16:-32768~32767int32:-2147483648~2147483647int64:-922

Day 2 - Go 语言学习 - 定义变量

变量声明定义使用 var 关键字定义编译器可以自动推断类型使用:=定义变量 packagemainimport("fmt")//包内变量,非全局变量,只能用 var 声明 varaint=3//字符串只能用双引号,类型可省略 varaaa,bbb=324,"dd"var(b=4c=falsed="gfd")funcmain(){//函数内变量,可用 var 定义 varnamestring="jack"name="ro

Day 1 - Go 语言学习 - 简介及安装配置

为什么要学习 go 语言 1.硬件限制基于摩尔定律,通过增加晶体管数量来提升单线程的性能和处理器频率越来越受限,为了解决这些问题,厂商开始向处理器增加内核数量,引入了超线程技术以及增加更多的缓存空间。但这些方案也有其自身的局限性,硬件上突破太难,所以就需要 go 语言这样能提高性能的软件语言。2.go 语言为并发而生大多数现代编程语言(如 Java,Python 等)都来自 90 年代的单线程环境,实现多核资源使用需要