go基础总结

最近参加字节跳动后端青训营,技术栈是go。go跟Java还是有些区别的,所以自己做点笔记来总结总结go的基础语法

数据类型

go的数据类型有以下几类:

  1. 数值类型:整形分为(u)int8、(u)int16、(u)int32、byte、rune、uintptr…,浮点型分为float32、float64、complex32、complex64(复数类型,复数分为实数和虚数,高中知识…)
  2. 布尔类型
  3. 字符串类型
  4. 派生类型:切片、指针、数组、结构(struct)、Channel类型、函数类型、接口类型

字符串类型说明:

  1. 字符:go无char,想要表示单个字符时,进包含acill码时用byte,其余用rune(类似int32)。tips:直接输出为数字,向输出字符用%c(不同于Java)
var c rune = 'a'
fmt.Println(c)
fmt.Printf("%c\n", c)

以上输出为

在这里插入图片描述

  1. 字符串:

字符串是基本数据类型

在这里插入图片描述

双引号转义输出,点号原生输出:

	str3 := "我要换行\n换好啦:)\n"
	str4 := `我想换行\n换不了:(\n`

在这里插入图片描述

派生类型

  1. 切片:为可变长的数组,当空间不足时,底层自动复制扩容,类似于List
	var slice []int
	slice1 := make([]int,5)
	fmt.Println("slice slice1:",slice,slice1)
  1. 指针
    go里的指针与c语言类似
var ip *int
var name *string

&获取地址,*取地址里的内容

var name = "fdsa"
var namestr *string
namestr = &name
fmt.Println(namestr)//输出地址
fmt.Println(*namestr)//输出fdsa

3.map,创建并声明一个map:

package main

import (
    "fmt"
)

func main() {
    myMap := map[string]int{
       "apple":  1,
       "banana": 2,
       "cherry": 3,
    }

    // 遍历 map 的键值对
    for key, value := range myMap {
       fmt.Printf("Key: %s, Value: %d\n", key, value)
    }
}

range来遍历一个map,第一个位置是key,第二个位置是value,如果不需要key只遍历value的话,第一个位置用_代替

for _,value := range myMap {
    fmt.Println("Value:", value)
}
  1. 数组
var arr []int = []int{1, 2, 3, 4, 5}
for i, v := range arr {
    fmt.Printf("Index: %d, Value: %d\n", i, v)
}

变量声明

  1. go中声明过的变量不使用会报编译错误
  2. 声明变量一般使用var关键字,可以指定变量类型也可以由编译器自动推断:
var url string="fa"//手动指定
fmt.Println(url)
var name ="fdsa"//自动推断
fmt.Println(name)
  1. 可用:=一步完成变量的声明和初始化
pass := "fds"
fmt.Println(pass)
  1. go的变量类型是后置的,一定是先写变量名,再写变量类型!

控制语句

if else

go里的if、else if的条件没有():

a := 10
if a < 10 {
    fmt.Println("小于")
} else if a > 10 {
    fmt.Println("大于")
} else {
    fmt.Println("等于")
}

循环

go里面没有while、dowhile,只有for,最简单的for循环就是一个for后面什么都不写,就是死循环:

for {
    fmt.Println("11")
}

经典三段式for:

for i := 0; i < 10; i++ {
    fmt.Println(i)
}

和其他语言一样,每一段都可以省略,也可用continue、break跳出循环

swich

和其他语言大差不差

函数

go里面函数使用func声明,并且原生支持返回多个值,实际业务中,通常第一个是返回的真正结果,第二个是错误信息。注意go的变量类型是后置的

//实现两数相加
func add(a int, b int) (result int, e string) {
    result = a + b
    return result, "ok"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值