Go语言基础语法-基础语法

80 阅读2分钟

才想起自己报了这个课程

go与c语法上的不同

1.变量-golang在变量上的命名要比c简单很多,在函数外面用var 在函数里面直接用:=就可以了。除此之外还支持更多的变量类型,除此之外声明变量也相较于c灵活不少,无需先声明再使用,可以在任意地方声明,只需要之后使用就好了.且每个语句不需要以分号结尾

变量的错误处理

func divide(x, y int) (interror) {  
    if y == 0 {  
        return 0, errors.New("division by zero")  
    }  
    return x / y, nil  
}  
  
func main() {  
    result, err := divide(100)  
    if err != nil {  
        fmt.Println("Error:", err)  
    } else {  
        fmt.Println("Result:", result)  
    }  
}

在上面的代码中,divide函数返回两个值:一个整数和一个错误。如果除数为0,则返回一个非nil的错误值,否则返回nil。在main函数中,我们使用if语句检查错误值是否为nil。如果不是,则打印错误信息,否则打印结果。

并发

平时在利用发请求的时候用过go 函数名来发送请求 用这种方式能在网站不给返回的情况下就可以多次发请求 但是很快就会出现bind: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a que ue was full. 至今不知道原因

语法 range

   sum := 0  
   // 变量nums数组,i为下标,num为元素值  
   for i, num := range nums {  
      sum += num  
      if num == 2 {  
         fmt.Println("index:", i, "num:", num) // index: 0 num: 2  
      }  
   }  
   fmt.Println(sum) // 9

这段代码中遍历了数组nums中的元素,即数字2、3和4。range nums返回的是数组中每个元素的下标和值,i表示元素的下标,num表示元素的值。
因此,在循环中,第一次迭代时i为0,num为2;第二次迭代时i为1,num为3;第三次迭代时i为2,num为4。在迭代过程中,将每个元素的值累加到sum变量中,并检查num是否等于2。如果num等于2,则打印出该元素的下标和值。
最后,程序打印出了所有元素的和sum,即2+3+4=9。