Golang基础语法
作者:互联网
Golang基础语法
通过以下指令查看Go的工作目录
go env GOPATH
Hello,World!
package main // 必须
// 导入其他包裹
import (
"fmt" // 输入输出
)
// 主函数
fun main() {
fmt.Println("Hello, Wolrd!")
}
定义变量
定义的变量必须被使用,否则将会报错
var a int // 定义整型, 默认值为0
var b string // 定义字符串,默认为空字符串
// 其他定义方法
a := x
b := "hi"
逻辑判断
if a > 1 {
fmt.Println("bigger than 1")
} else if a < 0 {
fmt.Println("less than 0")
} else {
fmt.Println("something else")
}
if a > 1 && a < 10 {
fmt.Println("Right")
}
元组
元组(Tuple) 不是 数组(Array)
定义元组
元组长度不可变
//定义元组
var a [3] int
a := [3]int{1,2,3}
// 修改元组中元素的值
a[1] = 9
切片
切片的长度可变
a := []int{1,2,3}
a = append(a,10) // 结尾添加值为10的变量
原理:切片创建一个新的长度翻倍的元组,将旧元组的值拷贝到新元组中,并添加新值,释放旧元组所占内存。
映射
类似于词典
//初始化映射
numbers := make(map[string]int)
//映射不固定大小
numbers["one"] = 1
numbers["two"] = 2
//删除关键词
delete(numbers, "one")
循环判断
go 语言中没有while循环
for i := 0; i < 5; i++ {
fmt.Println(i)
}
但可以通过for循环间接实现
i := 0
for ; i<5; {
fmt.println(i)
i++
}
// 无限循环
for {
fmt.println(i)
i++
}
for循环遍历元组、映射
a := []int{1,2,3,4,5}
for k, v := range a {
fmt.Println(k, v)
}
for k, v := range numbers {
fmt.Println(k, v)
}
定义函数
定义
func add(x int, y int) int {
return x + y
}
可以不返回值,也可以返回多个值
func do_math(x int, y int) (int,int) {
return x+y, x*y
}
还可以返回一个函数(闭包)
......
指针
n := 0
add(&n)
fmt.Println(n)
func add(n *int) {
*n = *n + 1
}
自定义数据类型
go语言并非完全的面向对象语言,没有类
// 定义结构体
type cat struct {
name string
age int
}
func main() {
cat1 := cat{name: "kitty", age: 3}
cat1.age=4
fmt.Println(cat1)
}
可以给自定义类型创建方法
type MyFloat float64
func (n MyFloat) show() {
fmt.Println(n)
}
func main() {
var a MyFloat = 1.5
a.show()
}
//同样可以使用指针
本文参考:【硬货】新时代最流行的编程语言?10分钟学会Golang基础
标签:语法,定义,int,fmt,基础,元组,Golang,func,Println 来源: https://www.cnblogs.com/Piako-code/p/16573857.html