作为一个从java转为go的开发工作者,相信也有很多跟我一样的朋友。在摸爬滚打一段时间后,现在从易到难输出go语言的一些基本用法,以及本人开发过程中踩过的坑,与大家一起分享。
此处略过go环境安装。。。
golang和java一样,只有一个程序入口,所以也只有一个main函数,接下来写一个简单的main函数。
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
这是一个简单的go语言函数例子,打印“Hello World”,此处引入了fmt包, 该包常用于打印语句。
变量
在go中,定义一个变量有两种方法。
//第一种:使用var name type
var num int //变量声明
num = 10 //变量赋值
//第二种:使用 := 直接定义变量
num := 10
//此种方法也可以一次定义多个变量
num,age := 10,20
//当定义了多个变量,但实际有的变量不需要,可以用下划线_代替
num,_ := 10,20
常量
常量表示一个固定的值,不能被改变。
const num = 10
const name = "周杰伦"
类型
下面是 Go 支持的基本类型:
-
bool类型
-
数字类型 int8, int16, int32, int64, int:整形
uint8, uint16, uint32, uint64, uint :无符号类型(都是正数)
float32, float64 :浮点数
complex64:实部和虚部都是 float32 类型的的复数。
complex128:实部和虚部都是 float64 类型的的复数。
byte:是 uint8 的别名。 rune:是 int32 的别名rune
-
字符串类型:string
类型转化
Go 有着非常严格的强类型特征。Go 没有自动类型提升或类型转换。 例如:
func demo() {
i := 10 //int
j := 8.8 //float64
num := i + j //不允许 int + float64
fmt.Println(num)
}
此时代码就会报错,因为go中是强类型,int类型不能与float类型相加。 解决办法:
func demo() {
i := 10 //int
j := 8.8 //float64
num := float64(i) + j //将int转为float64
fmt.Println(num)
}