当前位置: 首页 > article >正文

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"
}

http://www.kler.cn/a/430297.html

相关文章:

  • Windows 11 上配置VSCode 使用 Git 和 SSH 完整步骤
  • 基于html5实现音乐录音播放动画源码
  • 【CSS】设置滚动条样式
  • Ubuntu上安装Apache Spark
  • 3D机器视觉的类型、应用和未来趋势
  • C++语言的并发编程
  • 蓝桥杯刷题日记01-握手问题
  • C++ 基础教学:开启编程新征程
  • ubuntu系统每天凌晨定时上传redis 备份数据到阿里云OSS上
  • 火语言RPA流程组件介绍--鼠标点击
  • 从0开始深度学习(35)——YOLO V5原理详解
  • Python 网络爬虫进阶2:突破数据采集的边界
  • Spring Boot 整合 Druid 并开启监控
  • 16 设计模式之适配器模式(充电器转换案例)
  • 使用PPT科研绘图导出PDF边缘留白问题解决方案
  • ElasticSearch常见的索引_集群的备份与恢复方案
  • MySql(笔记)
  • hbuilder uniapp 运行npm run serve 报错 pages.jsoncliShared.parsingFailed解决
  • 3D 生成重建025-CRM开源的3Dmesh生成大模型
  • Unity 的介绍
  • 《Python 基于 RSA 算法的数字签名生成软件》
  • Java中线程之间是如何通信的
  • WinForm(C/S)项目中使用矢量字体(FontAwsome、Elegant)图标
  • 使用Python实现科学计算工具:数据分析的利器
  • 论文阅读 - Context De-confounded Emotion Recognition
  • Java 创建图形用户界面(GUI)组件详解之下拉式菜单(JMenu、JMenuItem)、弹出式菜单(JPopupMenu)等