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学好!!!