今日目标
今日内容
今天学习一下go语言的基础语法,因为有c语言的基础,就用类比的方法学习了,由于对于我觉得对于不同语言其实多用就会了,只说一下最简单地差别吧,关键还是后期多用
声明变量
①var a int=5 ②a:=5 ③const PI=1
可以看到这三种变量声明,首先①肯定是最基础的对比c语言int a=5的用法,类型是写在后面的
②是go语言声明的简便用法,这个也是很方便可以自动判断类型
go语言句末不用写分号,系统会自动帮你加(所以你写也行),这个也要适应一会
函数(go语言可以有多返回值)
是的,最直观的差别就是go语言的函数有多返回值
func GetIp(s string)(int,error){
if s=="" {return "",fmt.Error("IP为空")}
return s,nil
}
首先这个s string仍然类型写在后面,然后后面还会有一个(返回值类型1,返回值类型2)这样的标注,最后如果没错错误的话,error那一栏就是nil,而且是不能省略的,return s,nil。当然举一反三的话就知道了error!=nil就是错误时的判断条件
struct
type Person struct{Name string; Age int}
p:=Person{Name:"任涵",Age:20}
这个不多说了
方法
这个目前还没遇到
error处理
前面提到返回值有多个,其实就是有error处理,就变成显性的了你必须要面对,一定程度上就会避免忘记错误处理的可能性
result,err=GetIp("")
if err!=nil{
fmt.Println("出错:",err)
return
}
slice(类似动态数组)
1.已知具体元素时
nums:=[]int{1,2,3}
2.只指定长度(元素默认为0)
nums:=make([]int,5)
这个生成的数组就是{0,0,0,0,0}
3.只定义数组
var nums []int
nums=append(nums,1)
nums=append(nums,2)
这个就是依次加数字
第一次append后数组是{1}
第二次append后为{1,2}
map(哈希表)
哈希表不需要像c语言一样定义
m:=map[string]int{"张三":90 "李四":80 }
指针
和c差不多遇到再学