Go语言基础语法 | 青训营

119 阅读3分钟

Go语言介绍

Go语言是一种开源的编程语言,由Google开发。它是一种静态类型、编译型的语言,其语法简洁、高效,并具有强大的并发支持。

Go语言基础语法

1.变量和类型

在Go中,声明变量需要指定类型。例如:

var x int  
var name string

2.常量

使用const关键字声明常量,常量定义后不可再修改,例如:

const pi = 3.14159

3.数据类型转换

在Go中,可以使用类型转换将不同类型的数据进行转换。例如:

var x int = 10  
var y float64 = float64(x)

4.控制流语句

  • 条件语句:使用if关键字实现条件语句,例如:
if x > 0 {  
    // do something  
}
  • 循环语句:使用for关键字实现循环语句,例如:
for i := 0; i < 10; i++ {  
    // do something  
}
  • 开关语句:使用switch关键字实现开关语句,例如:
switch x {  
case 1:  
    // do something  
case 2:  
    // do something else  
default:  
    // default case  
}

5. 函数和方法

在Go中,使用func关键字声明函数和方法。函数定义格式如下:

func functionName(parameter1 type1, parameter2 type2) returnType {  
    // function body  
    return value  
}

方法的定义与函数类似,但需要与某个结构体关联。例如:

type MyStruct struct {  
    // fields  
}  
  
func (m MyStruct) myMethod(parameter1 type1, parameter2 type2) returnType {  
    // method body  
    return value  
}

6. 数组和切片

数组是具有固定长度的数据结构,切片是动态长度的数据结构。可以使用以下方式声明和初始化数组和切片:

数组:

var arr [5]int // 声明一个长度为5的整型数组
arr = [5]int{1, 2, 3, 4, 5} // 初始化数组元素
arr := make([] int, 10) //新建一个大小为10的int数组

切片:

var slice []int // 声明一个整型切片 
slice = []int{1, 2, 3, 4, 5} // 初始化切片元素

7.错误处理和错误类型断言(error)

在Go中,错误处理是重要的部分。函数的返回值通常包括一个结果和一个错误对象。可以使用if和类型断言来检查错误和处理异常。例如:

result, err := doSomething() // 调用函数并获取结果和错误对象 
if err != nil { 
    // 处理错误情况,或者返回错误给调用者 
} else { 
    // 处理正常情况,使用result进行后续操作 
}

总结与思考

由于之前写算法都是用C++,突然学习了Go语言,感觉也是很不习惯,比如Go语言要求代码的花括号{}必须采用统一的风格,即左花括号{必须放在行尾而不能另起一行,C++对{}左右花括号则是没有要求;Go不需要在语句的最后加上分号;以表示语句结束,而C++必须加上;表示语句结束;Go语言定义变量需要类型后置,数组、字符串都是如此,而C++的类型前置用了很久因此会有些不适应;GO语言中没有private/protected/public/friend关键字,可见性是通过成员的首字母是否大写决定的,并且仅支持包间的可见性定义,不支持类的可见性。包中所有首字母大写开头的成员(对象、函数),表示包间可见,可以被其它包中的代码访问。但对于首字母小写开头的成员,则仅能被本包中的成员所访问(这相当于包内的所有成员间都加了friend声明)。GO的struct和interface与C++存在几点显著的不同:1.不支持继承,只能通过组合实现继承。2.可以给任意类型增加方法。3.类不需要显式指定实现interface。4.对象可以在多个具有相同接口的interface间转换。

以上就是学习Go的一些心得,现在每天也都会用Go写算法,希望后面能把Go学好!!!