golang运算符
10点40,结束了第一章,了解了golang的变量类型,这一章将会介绍golang的运算符
P58-P61:算术运算符几乎完全类C,取消了三元运算符 a++ a--不能赋值给别的变量,只能独立使用,且没有++a这种用法,这与C不同
%:a%b=a-a/b*b

P62-P68:各种运算符(与C完全一样,直接跳过)
P69:I/O控制 fmt.Scanf() fmt.Scanln()
P70-P76:计算机原理(跳过)%b:二进制输出
强化一下原码、反码、补码的基础知识
P77-P107:流程控制(类C,跳过):for 之后不要加括号。for 循环的前三种使用方式与C类似,第四种使用方式与python类似,for range类型用于遍历字符串和数组
字符串转切片,[]rune(str)将字符串转换为切片。
go 中没有while 和 do while
break 可以写标签,label一次性跳出多层。
goto:之所以存在于go语言,大概是由于c语言的制作者参与了go-lang的制作,goto在c中都不推荐使用,在go中更加不推荐使用,可以当作这个关键词不存在。
P108-109:函数

P110-121:包和函数

P122:go中函数也是一种数据类型,可以赋值给变量,可以传参给函数。


init函数,先全局变量定义,然后是init函数,最后是main();
P123:匿名函数,只调用一次的函数,定义时就调用。多用于在函数内部定义小函数
P124-125:闭包,一个函数与其引用环境的整合。闭包是类,函数是操作,n是字段。如果用闭包只需要调用一次。传统方法每次有要传参,闭包可以保留上回引用的某个值。
P126:defer

defer栈的实例。defer压入defer栈,在函数执行完毕后,出栈执行。
P127:defer入站的时候入了压入指令还压入了数据。
P128-131:变量作用域,跳过。
P132:字符串常用系统函数,举例21个。(1)len():按字节,内建函数,不属于任何包。(2)r:=[]rune(str),遍历字符串需要先把它转化为一个切片,否则会有乱码。(3)strconv.Atoi():字符串转换为整数。(4)strconv.Itoa():整数转字符串。(5)[]byte:var bytes=[]byte("hello go")字符串转byte(6)str=string([]byte{97,98,99})byte转字符串(7)str=strconv.FormatInt(123,2)10进制转换2进制,还可以转换为8,16等(8)strings.Contains("seafood","foo")查找字串(9)strings.Counts("ceheese","e")统计有几个字符串被包含在字符串里。(10)fmt.Println(strings.EqualFold("abc","Abc"))不区分大小写的字符串比较(11)strings.Index("NLT_abc","abc"):查找指定串中有没有字串,如果有返回地址index,如果没有返回-1(12)strings.LastIndex("NLT_abc","abc"):返回最后一个位置的函数值。(13)strings.Replace("go go 语言","go","c",n):字符串替换,若n为-1,则全部替换(14)strings.Split("hello,world,ok",",")将字符串拆分成字符串数组。(15)strings.ToLower("Go") 小写strings.ToUpper("Go"):得到大写(16)strings.TrimSpace(" fjd ka lfj ")去掉字符串两端的空格。(17)strings.Trim("!dfdaf!","!"):去掉字符串两端指定的字符。(18)strings.LeftTrim("!dfdaf!","!"):去掉字符串左边指定的字符。(19)strings.RightTrim("!dfdaf!","!"):去掉字符串右边指定的字符。(20)strings.HasPrefix("ftp://192.168.10.1","ftp"):检验前缀(21)strings.HasSuffix("NLT_abc.jpg",".jpg")检查后缀
P135:时间和日期相关:time包 time.Now():获取当前时间time.Time type类型的变量。

格式化日期和时间:(1)传统方式用printf 或者sprintf()控制输出(2)格式化函数

函数中的参考时间不能变,会自动显示当前时间。


new: 开一个指针。
异常处理:defer recover panic
errors.New("你好吗!")自定义错误
网友评论