GO 语言入门(一)-- 基础语法汇总 快速入门

GO 基础语法

1. 编译运行:

​ 直接运行 main 文件

go run main.go 

build 编译成二进制文件

go build main.go 

2. 变量:

//使用 var 声明变量
//变量会根据赋值,自我类型推导
var a = "123"
var a int = 1
var  e
//使用 := 声明短变量
a := float(1.0)
//常量
const a = "const"

3. if … else

//if else 大括号必须和 if 或 else 在同一行
//if 条件不需要写小括号()
if a == true {
 fmt.PrintLn("123");
}else if {

}else{

}

4. for循环

go语言循环语句只有 for,没有 while 和 do{}while;

for i = 1; i < 7; i++{
	//continue or break
}

5. switch

//go 中条件 变量可以是任意类型int float, string 
//在 c++ 中,每个 case 如果不写 break, 会继续跳到下一个 case 执行, 而 go 中不需要写 break,即会跳出。 
a := 2
switch a {
case 1:
	fmt.Println("one")
case 2:
	fmt.Println("two")
case 3:
	fmt.Println("three")
case 4, 5:
	fmt.Println("four or five")
default:
	fmt.Println("other")
}
//switch 甚至可以取代 if语句
t := time.Now()
switch {
case t.Hour() < 12:
	fmt.Println("It's before noon")
default:
	fmt.Println("It's after noon")
}

6. make 函数:

6.1 切片 Slice:

语法 : make(type, length, capacity); capacity 可选

//下面语句得到一个长度为 3的切片
	s := make([]string, 3)
	s[0] = "a"
	s[1] = "b"
	s[2] = "c"
	fmt.Println("get:", s[2])   // c
	fmt.Println("len:", len(s)) // 3

//注意,使用 append 必须要再赋值给 s, 因为 append 可能会触发扩容操作,会得到一个新的切片指针,与c++中 vector 增删类似;
	s = append(s, "d")
	s = append(s, "e", "f")
	fmt.Println(s) // [a b c d e f]

	c := make([]string, len(s))
	copy(c, s)
	fmt.Println(c) // [a b c d e f]

	fmt.Println(s[2:5]) // [c d e]
	fmt.Println(s[:5])  // [a b c d e]
	fmt.Println(s[2:])  // [c d e f]

	good := []string{"g", "o", "o", "d"}
	fmt.Println(good) // [g o o d]
}

7. map

go 中的map 类似于 c++ 中的 无序 map – unordered_map

//声明格式: map[key_type]value_type
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println(m)           // map[one:1 two:2]
fmt.Println(len(m))      // 2
fmt.Println(m["one"])    // 1
fmt.Println(m["unknow"]) // 0

r, ok := m["unknow"]
fmt.Println(r, ok) // 0 false

delete(m, "one")
//直接使用 {} 初始化
m2 := map[string]int{"one": 1, "two": 2}
var m3 = map[string]int{"one": 1, "two": 2}
fmt.Println(m2, m3)

8. 函数

package main
import "fmt"
//支持返回多值
func add(a int, b int) int {
	return a + b
}

func add2(a, b int) int {
	return a + b
}

func exists(m map[string]string, k string) (v string, ok bool) {
	v, ok = m[k]
	return v, ok

9.结构体

type user struct{
	name string
	password string
}

//结构体方法 可以直接用 .method()方法
func (u user) checkPassword(password string) bool {
	return u.password == password
}

func (u *user) resetPassword(password string) {
	u.password = password
}

func main() {
	a := user{name: "wang", password: "1024"}
	a.resetPassword("2048")
	fmt.Println(a.checkPassword("2048")) // true
}

10.sock5

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值