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

Golang基础学习笔记

Golang基础学习笔记

1、下载安装

1.1、下载

Golang下载地址:https://golang.google.cn/dl/

1.2、安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3、环境变量

# GOPATH
D:\GolandProjects

在这里插入图片描述

# GOPROXY
https://mirrors.aliyun.com/goproxy

在这里插入图片描述

# 启用Go模块支持
go env -w GO111MODULE=on

1.5、验证安装/配置

在这里插入图片描述

1.5、hello world

在这里插入图片描述

2、变量/常量

2.1、变量

package mainimport "fmt"func main() {// var 变量名字 类型 = 表达式// 单个变量定义//var name string = "xumeng03!"//var name = "xumeng03!"//name := "xumeng03!"var name stringname = "xumeng03"fmt.Println("hello", name)// 多个变量定义//var name1, name2 = "xumeng", "xumeng03"var (name1  = "xumeng03"name2 = "xumeng")fmt.Println("hello", name1, name2)
}

2.2、常量

package mainimport "fmt"func main() {// const 变量名字 类型 = 表达式const name string="xumeng03"// 报错//name = "xumeng"//const name1 string//name1 = "aaa"fmt.Println("hello", name)
}

3、基本数据类型

3.1、基本类型

数据类型类型解释默认零值
bool布尔型,值为truefalsefalse
uint88位无符号整型,取值范围为0到2550
uint1616位无符号整型,取值范围为0到655350
uint3232位无符号整型,取值范围为0到42949672950
uint64/uint64位无符号整型,取值范围为0到42949672950
int88位有符号整型,取值范围为-128到1270
int1616位有符号整型,取值范围为-32768到327670
int3232位有符号整型,取值范围为-2147483648到21474836470
int64/int64位有符号整型,取值范围为-9223372036854775808到92233720368547758070
float3232位浮点型,可以表示小数,精度为7位小数0
float6464位浮点型,可以表示小数,精度为15位小数0
string字符串类型,由一串Unicode码点组成“”
package mainimport ("fmt""math""strconv"
)func main() {// boolvar vbool boolfmt.Printf("类型: %T,默认值: %t\n", vbool, vbool)//  uint8、uint16、uint32、uint64(uint)var vuint uintvar vuint8 uint8var vuint16 uint16var vuint32 uint32var vuint64 uint64fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vuint, vuint, 0, strconv.FormatUint(math.MaxUint, 10))fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vuint8, vuint8, 0, math.MaxUint8)fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vuint16, vuint16, 0, math.MaxUint16)fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vuint32, vuint32, 0, math.MaxUint32)fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vuint64, vuint64, 0, strconv.FormatUint(math.MaxUint64, 10))// int8、int16、int32、int64var vint intvar vint8 int8var vint16 int16var vint32 int32var vint64 int64fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vint, vint, math.MinInt, math.MaxInt)fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vint8, vint8, math.MinInt8, math.MaxInt8)fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vint16, vint16, math.MinInt16, math.MaxInt16)fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vint32, vint32, math.MinInt32, math.MaxInt32)fmt.Printf("类型: %T,默认值: %d,最小值: %d,最大值: %d\n", vint64, vint64, math.MinInt64, math.MaxInt64)// float32、float64var vfloat32 float32var vfloat64 float32fmt.Printf("类型: %T,默认值: %f\n", vfloat32, vfloat32)fmt.Printf("类型: %T,默认值: %f\n", vfloat64, vfloat64)// stringvar vstring stringfmt.Printf("类型: %T,默认值: %s\n", vstring, vstring)
}

3.2、基本类型转换

只有类型兼容的才可以转换!

package mainimport ("fmt"
)func main() {var vint8 int8var vint16 int16//vint16 = vint8;vint16 = int16(vint8);fmt.Printf("类型: %T,值: %d", vint16, vint16)// 大转小会有精度丢失问题//var vint8 int8//var vint16 int16 = 257//vint8 = int8(vint16)//fmt.Printf("类型: %T,值: %d", vint8, vint8)
}

4、复合数据类型

5、运算符

5.1、算数运算符

package mainimport ("fmt"
)func main() {a := 9b := 3fmt.Printf("%d + %d = %d\n", a, b, a+b)fmt.Printf("%d - %d = %d\n", a, b, a-b)fmt.Printf("%d * %d = %d\n", a, b, a*b)fmt.Printf("%d / %d = %d\n", a, b, a/b)fmt.Printf("%d %% %d = %d\n", a, b, a%b)c := 3c++fmt.Printf("%d\n", c)c--fmt.Printf("%d", c)
}

5.2、关系运算符

package mainimport ("fmt"
)func main() {a := 9b := 3c := 3fmt.Printf("%d > %d ? %t\n", a, b, a > b)fmt.Printf("%d < %d ? %t\n", a, b, a < b)fmt.Printf("%d == %d ? %t\n", a, b, a == b)fmt.Printf("%d >= %d ? %t\n", b, b, b >= c)fmt.Printf("%d <= %d ? %t\n", a, b, a <= b)fmt.Printf("%d != %d ? %t\n", b, b, b != c)
}

5.3、逻辑运算符

func main() {a := 9b := 3c := 3fmt.Printf("%b & %d = %b\n", a, b, b, c, a > b && b == c)fmt.Printf("%d < %d || %d == %d ? %t\n", a, b, b, c, a < b || b != c)
}

5.4、位运算符

package mainimport ("fmt"
)func main() {a := 9b := 3// 对应位均为1,才是1,否则为0fmt.Printf("%b & %b = %b\n", a, b, a&b)// 对应位均为0,才是0,否则为1fmt.Printf("%b | %b = %b\n\n", a, b, a|b)// 对应位值不同为1,否则为0fmt.Printf("%b ^ %b = %b\n", a, b, a^b)// 按位取反fmt.Printf("^%b = %b\n", a, ^a)// 对于b的值,如果为0,则取a对应位的值,否则取0fmt.Printf("%b &^ %b = %b\n", a, b, a&^b)// a=a*2^2a = a << 2fmt.Printf("9 << 2 = %b(%d)\n", a, a)// a=a/2a = a >> 1fmt.Printf("36 >> 1 = %b(%d)\n", a, a)
}

5.5、赋值运算符

package mainimport ("fmt"
)func main() {a := 9b := 3a += bfmt.Printf("9 + 3 = %d\n", a)a -= bfmt.Printf("12 - 3 = %d\n", a)
}

6、输入/输出

6.1、输出

方法说明
fmt.Print将参数打印输出到标准输出,不进行格式化处理,参数之间用空格分隔
fmt.Println将参数打印输出到标准输出,不进行格式化处理,参数之间用空格分隔,并在最后添加换行符
fmt.Printf通过格式化字符串和参数进行输出。格式化字符串中可以包含占位符(例如%s%d等),用于指定参数的格式和位置
fmt.Sprintf通过格式化字符串和参数生成一个格式化后的字符串,而不是直接打印输出。返回生成的字符串,可以赋值给变量或作为其他函数的参数
package mainimport "fmt"func main() {a := 11fmt.Printf("类型: %T,值: %d,二进制值 %b,八进制值 %o,十进制值 %d,十六进制值 %x,十六进制值 %X\n", a, a, a, a, a, a, a)b := "xumeng03"fmt.Printf("类型: %T,值: %s\n", b, b)c := 'A'fmt.Printf("类型: %T,值: %c\n", c, c)d := ""fmt.Printf("类型: %T,地址: %p\n", d, &d)
}

6.2、输入

方法说明
fmt.Scan从标准输入中读取输入,并将解析后的值存储到指定的变量中。它需要传入指向变量的指针作为参数,并以空格为分隔符进行解析
fmt.Scanf从标准输入中按照指定的格式字符串读取输入,并将解析后的值存储到指定的变量中。
package mainimport ("fmt""strconv"
)func main() {//fmt.Print("请输入名称: ")//var a string//fmt.Scan(&a)//fmt.Println("hello", a+"!")fmt.Print("请输入名称、年龄: ")var a stringvar b int64fmt.Scanf("%s %d", &a, &b)fmt.Println("hello", a+" "+strconv.FormatInt(b, 10)+"!")
}

7、流程控制

7.1、判断语句

相关文章:

Golang基础学习笔记

Golang基础学习笔记 1、下载安装 1.1、下载 Golang下载地址&#xff1a;https://golang.google.cn/dl/ 1.2、安装 1.3、环境变量 # GOPATH D:\GolandProjects# GOPROXY https://mirrors.aliyun.com/goproxy# 启用Go模块支持 go env -w GO111MODULEon1.5、验证安装/配置 1.…...

ES _bulk 批量操作用法

es 的 bulk 操作&#xff0c;是用来批量发送请求&#xff0c;或者理解为批量操作的。 支持4种操作 bulk 支持多种操作&#xff0c;如下create、index、update、delete。 create 如果文档不存在就创建&#xff0c;但如果文档存在就返回错误index 如果文档不存在就创建&#x…...

LCR 176.判断是否为平衡二叉树

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;LCR 176. 判断是否为平衡二叉树 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 若树中任意节点左子树是平衡二叉树&#xff0c;右子树是平衡二叉树 且该节点左右子树平衡&#xff0c;则该树…...

跨境商城源码有哪些独特的功能和优势

1. 强大的跨境支付功能 跨境商城源码具备强大的跨境支付功能&#xff0c;支持多种支付方式&#xff0c;包括信用卡、支付宝、微信支付等。该功能遵循国际支付标准&#xff0c;能够确保支付过程的安全性和可靠性&#xff0c;为用户提供便捷的跨境购物体验。 2. 多语言和多货币支…...

latex如何对.pdf格式的图片实现裁剪

目录 问题描述&#xff1a; 问题解决&#xff1a; 问题描述&#xff1a; 在使用draw.io进行绘图&#xff0c;导出的时候不知道为什么周围会有留白&#xff0c;比如下图&#xff1a; 在导入latex的时候&#xff0c;会因为两侧的留白导致整张图片缩小。 如果直接进行裁剪.pdf&a…...

windows10下 iperf3测试带宽

iperf3下载网址&#xff1a;iPerf - Download iPerf3 and original iPerf pre-compiled binaries 可以用来测试TCP以及UDP带宽质量 通俗来说是用来测试网速的 准备&#xff1a;两台设备 1. 根据自己的设备选择下载工具&#xff08;两台都要有&#xff0c;这里我用的Window…...

Stratasys F170 3D打印教程

目录 0. 引言1. 3D打印技术1.1 3D 打印概述1.2 3D打印成型技术的工艺1.3 3D打印材料2. Stratasys F170 3D打印机2.1 Stratasys F170 特点及使用说明3. 打印步骤3.1 导出加工模型3.2 导入模型到GrabCAD Print3.2.1 GrabCAD Print 基本操作步骤4. 常见问题及解决方案参考文献0. 引…...

以太坊 CALL 数据解析【ETH】

文章目录 前言代码前言 当我们通过 jsonrpc CALL 获取到数据时,不可读,怎么办? 这里直接给大家一个工具类 代码 package trace// author JavaPub shiyuwangimport ("encoding/json""fmt""io/ioutil""net/http""strings&qu…...

Xilinx IP 10G Ethernet PCS/PMA IP Core

Vivado 10G Ethernet PCS/PMA介绍 1介绍 完整的10G以太网接口如下图,分为10G PHY和10G MAC两部分。 这篇文章重点讲 10G Ethernet PCS/PMA。 2 IP的基本介绍 10G以太网物理编码子层/物理介质连接(PCS/PMA)核心在Xilinx 10G以太网介质访问控制器(MAC)核心和具有10Gb/s…...

软件设计师_面向对象_学习笔记

文章目录 1 面向对象基本概念2 设计模式3 UML4 设计模式4.1 设计模式的基本概念4.2 设计模式的分类4.3 创建型模式 1 面向对象基本概念 2 设计模式 3 UML 4 设计模式 4.1 设计模式的基本概念 模式&#xff1a;通俗的来说就是成功方案的复用。 架构模式从全局看待问题。设计模式…...

行业追踪,2023-10-16

自动复盘 2023-10-16 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…...

ubuntu深度学习配置

1.删除旧cuca&#xff0c;旧显卡驱动 sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*" "*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*" sudo…...

大数据flink篇之三-flink运行环境安装后续一yarn-session安装

前提&#xff1a; Hadoop 必須保证在 2.2 以上&#xff0c;且必須裝有 hdfs 服务。Hadoop安装后续会有相关说明。 具体的&#xff0c;在生产环境中&#xff0c;flink一般会交由yarn、k8s等资源管理平台来处理。本章主要讲解yarn模式下的session cluster模式。 flink Session-C…...

Chrome Extensions v3 迁移清单

一、前置问题 1.1为什么需要迁移 v3&#xff1f; Chrome 计划完全停止 v2 版本维护&#xff0c;后续 v2 版本将无法上架谷歌插件商店&#xff0c;除此之外&#xff0c;未来新版本 Chrome 对于 v2 版本插件的限制会越来越大&#xff0c;比如安全性限制 iframe 嵌套只能通过沙盒…...

TCP/IP(十二)TCP的确认、超时、重传机制

一 TCP的确认应答机制 确认应答机制: 每次收到数据 都会 给对端发送一个应答报文(ACK) ① 带重传的肯定确认 确认机制: 超时 重传的 肯定 确认 --> 完成了两个作用,或者说有两个含义1、肯定[正确] 确认小结&#xff1a; 我的确认信息是针对正确数据做确认,而不是错误…...

C/C++陷阱——临时变量的产生和特性

C/C陷阱——临时变量的产生和特性 在学习C常引用时&#xff0c;有这样一段代码引起了我的注意&#xff1a; int a 1; double& b a;当我编译这段代码时&#xff0c;竟然报错了&#xff1a; 按理来说&#xff0c;初始化引用时不能涉及权限的放大&#xff08;如用const in…...

【音视频|ALSA】SS528开发板编译Linux内核ALSA驱动、移植alsa-lib、采集与播放usb耳机声音

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

C/C++基础讲解(一百三十一)之经典篇(信息合并/平均分数存储)

C/C++基础讲解(一百三十一)之经典篇(信息合并/平均分数存储) 程序之美 前言 很多时候,特别是刚步入大学的学子们,对于刚刚开展的计算机课程基本上是一团迷雾,想要弄明白其中的奥秘,真的要花费一些功夫,我和大家一样都是这么啃过来的,从不知到知知,懵懂到入门,每一步…...

【ROS】使用vscode浏览navigation2源码时,提示:没有那个文件或目录

【ROS】郭老二博文之:ROS目录 1、问题描述 使用vscode浏览navigation2源码时,头文件下面有波浪线,并提示:没有那个文件或目录。比如没有:geometry_msgs/msg/polygon.h 错误信息: 无法打开源文件 “geometry_msgs/msg/polygon.h” (dependency of “nav2_controller/co…...

ARM-day9作业

main.c: #include "uart.h"#include "key_it.h"int main(){char c;char *s;uart4_init(); //串口初始化//中断初始化key_it_config();key3_it_config();//完成GPIO相关初始化all_led_init();//风扇初始化fs_init();//蜂鸣器初始化fmq_init();while(1){…...

Python 爬虫进阶技巧:JSON 数据多层嵌套解析取值技巧

前言 在现代网络数据采集场景中,JSON(JavaScript Object Notation)已成为前后端数据交互的核心格式,绝大多数动态网页、API 接口均采用多层嵌套 JSON 结构传输数据。对于爬虫开发者而言,基础的 JSON 取值仅能应对简单数据结构,而面对深度嵌套、数组嵌套、混合嵌套等复杂…...

claw-installer:构建自动化部署脚本的工程实践与设计哲学

1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目&#xff0c;叫claw-installer。这名字乍一看有点抽象&#xff0c;但如果你对自动化部署、特别是那些需要处理复杂依赖和配置的应用感兴趣&#xff0c;那这个工具很可能就是你一直在找的“瑞士军刀”。简单来说&#xff…...

Cursor Pro破解工具:简单5步实现AI编程助手永久免费使用

Cursor Pro破解工具&#xff1a;简单5步实现AI编程助手永久免费使用 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

从TTP223到JL523:低成本电容触摸按钮的选型与实战

1. 电容触摸按钮入门&#xff1a;从原理到选型 第一次接触电容触摸按钮是在五年前的一个智能台灯项目上。当时为了给台灯添加一个酷炫的触摸开关&#xff0c;我试遍了市面上各种方案&#xff0c;最终锁定了TTP223这颗经典芯片。没想到几年后&#xff0c;国产的JL523给了我更大的…...

大模型微调实战:用百元级GPU打造专属AI助手

测试工程师的AI困局与破局在软件测试领域&#xff0c;我们每天都在与各种文本打交道——测试用例、缺陷报告、自动化脚本、需求文档、评审记录。大语言模型&#xff08;LLM&#xff09;的爆发让我们看到了提效的曙光&#xff0c;但很快就会发现&#xff0c;通用模型对测试业务的…...

JESD204B协议在5G MIMO基站中的关键应用与优化

1. JESD204B协议在MIMO基站中的核心价值 现代无线通信系统正经历着从传统单天线向大规模MIMO&#xff08;多输入多输出&#xff09;架构的转型。作为5G基站的核心技术&#xff0c;Massive MIMO系统通常需要处理64T64R甚至更大规模的天线阵列&#xff0c;这对数据转换器&#xf…...

AMD APU异构计算与能效优化技术解析

1. 异构计算时代的能效革命&#xff1a;AMD APU技术深度解析 在半导体行业摸爬滚打十几年&#xff0c;我亲眼见证了处理器能效比从单纯依赖制程进步到架构创新的转变。2014年AMD提出的25x20计划&#xff08;到2020年实现APU能效提升25倍&#xff09;曾被视为天方夜谭&#xff0…...

3-5年经验程序员注意:这3大岗位年薪飙升至百万,你中招了吗?

昨天晚上&#xff0c;有个群友说&#xff1a;我看 boss 直聘已经有些公司明确要求要 AI 经验了&#xff0c;之前是大厂先搞&#xff0c;现在中小开始反应过来了。是的&#xff0c;这个趋势已经越来越明显。不只是招聘&#xff0c;春节以后&#xff0c;很多公司推 AI 的力度也变…...

为什么83%的企业在2025年底紧急替换AI Agent?2026年必须升级的4个底层能力清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么83%的企业在2025年底紧急替换AI Agent&#xff1f;2026年必须升级的4个底层能力清单 2025年Q3起&#xff0c;全球头部金融、制造与医疗企业集中触发AI Agent架构重构——Gartner最新调研显示&…...

字节跳动多举措重塑短剧行业:15亿扶持、分账透明,出海与收缩并行

恐慌的来源&#xff0c;以及字节的导向今年年初&#xff0c;“红果取消保底”消息在从业者圈子发酵&#xff0c;“短剧演员无戏可拍”话题登上微博热搜&#xff0c;阅读量破亿&#xff0c;行业恐慌蔓延。恐慌源于两方面&#xff1a;一是红果从2026年1月起收缩普惠保底&#xff…...