Go语言学习代码记录

一、demo01

package main
import "fmt"//func函数外的变量叫全局变量
var g7 = 100
var g8 = 9.7
//设计者认为上面的全局变量的写法泰麻烦了,可以一次性声明
var(g10 = 500g11 = "jackchen"
)func main(){
//func定义的函数中的变量叫局部变量//1、变量的声明
var age int
//2、变量的赋值
age = 18
//3、变量的使用
fmt.Println("age =",age)
//4、变量和赋值一句
var age2 int = 19
fmt.Println("age2 =",age2)fmt.Println("------------- 变量的4中表现形式 --------------")
//第一种
var num int = 18
fmt.Println("变量的第一种变形输出:",num)
//第二种,int类型未赋值的情况下,默认值为 0
var num2 int
fmt.Println("变量的第二种变形输出:",num2)
//第三种,如果没有写变量的类型,那么根据"="后面的值进行判定变量的类型(自动类型推断)
var num3="tom"
fmt.Println("变量的第三种变形输出:",num3)
//第四种,省略var,注意使用:= 
sex := "男"
fmt.Println("变量的第四种变形输出:",sex)fmt.Println("------------- 支持一次性声明多个变量(多变量声明) --------------")
var n1,n2,n3 int
fmt.Println(n1,n2,n3)var n7,name,n8 = 10,"jack",7.8
fmt.Println(n7,name,n8)n9,height := 6.9,100.6
fmt.Println(n9,height)fmt.Println("------------- 函数内打印全局变量 --------------")
fmt.Println(g7,g8,g10,g11)
}

二、demo02

package main
import "fmt"func main(){
//+加号:
//1.正数 2.相加操作 3.字符串拼接
var n3 int = -10
fmt.Println(n3)
var n1 int = +10
fmt.Println(n1)
var n2 int = 4 + 7
fmt.Println(n2)
var s1 string = "abc" + "def"
fmt.Println(s1)//除号:
fmt.Println(10/3) //两个int类型数据运算,结果一定为整数类型
fmt.Println(10.0/3) //浮点类型参与计算,结果为浮点类型//%取模 等价公式:  a%b=a-a/b*b
fmt.Println(10%3)  //10%3 = 10-10/3*3 = 1
fmt.Println("10-10/3*3 =",10-10/3*3)
fmt.Println(-10%3)
fmt.Println(10%-3)
fmt.Println(-10%-3)//++自增操作:
/*
go语言里,++--操作非常简单,只能单独使用,不能参与到运算中去。
++--只能在变量的后面,不能写在变量的前面,--a ,++a 语法是错误的。
*/
var a1 int = 10 
a1++
fmt.Println("a1++= ",a1)
a1--
fmt.Println("a1--= ",a1)//赋值运算符:
var num1 int = 10
fmt.Println(num1)
var num2 int = (10+20)%3+3-7  //=右侧的值运算符清楚后,再赋值给=的左侧
fmt.Println(num2)
var num3 int = 10
num3 = num3 + 20
fmt.Println("num3 = num3 + 20= ",num3)
num3 -=20
fmt.Println("num3 -=20= ",num3)//联系:交换两个数的值并输出结果
var a int = 8
var b int = 4
fmt.Println("a = %v,b = %v",a,b)
fmt.Println("%v表示输出时会添加字段名")
//交换:
//引入一个中间变量
var t int
t = a
a = b
b = t
fmt.Println("a = %v,b = %v",a,b)//关系运算符:
fmt.Println(5==9) //判断左右两侧的值是否相等,相等返回true,不相等返回的是false
fmt.Println(5!=9) //判断不等于
fmt.Println(5>9)
fmt.Println(5<9)
fmt.Println(5>=9)
fmt.Println(5<=9)//逻辑运算符:
/*
与逻辑:&& 两个数值/表达式只要有一侧是false,结果一定为false
也叫短路与:只要第一个数值/表达式的结果是false,那么后面的表达式等就不用运算了,直接结果就是false
*/
fmt.Println(true&&true)
fmt.Println(true&&false)
fmt.Println(false&&true)
fmt.Println(false&&false)
/*
或逻辑:&& 两个数值/表达式只要有一侧是true,结果一定为true
也叫短路或:只要第一个数值/表达式的结果是true,那么后面的表达式等就不用运算了,直接结果就是true,-->提高运算效率
*/
fmt.Println(true||true)
fmt.Println(true||false)
fmt.Println(false||true)
fmt.Println(false||false)
/*
非逻辑,取相反的结果
*/
fmt.Println(!true)
fmt.Println(!false)//其它运算符
/*
&取内存地址
指针就是内存地址
&age_addr 表示获取存储空间的指针地址
*/
var age_addr int = 18
fmt.Println("age对应的存储空间的地址为:",&age_addr)
/*
*int  表示ptr 指针int的类型
*ptr  变量前加* 表示打印指针的空间所保存的值
* 取指针变量对应的数值
*/
var ptr *int = &age_addr
fmt.Println(ptr)
fmt.Println("ptr这个指针指向的具体数值为:",*ptr)}

三、demo03

package main
import "fmt"
func main(){//实现功能:如果口罩的库存小于30个,提示:库存不足var count int = 100//单分支:/*if后面表达式,返回结构一定是true或者false如果返回结果为true的话,那么{}中的代码就会执行如果返回结果为false的话,那么{}中的代码就不会执行 golang里面,if后面可以并列的加入变量的定义:*/if count < 30 {fmt.Println("对不起,口罩存量不足")}/*golang里面,if后面可以并列的加入变量的定义:num:=30   省略var ,并且根据:=后的值,推导出数据类型用分号来分割定义的变量与表达式*/if num:=30;num < 30{fmt.Println("对不起,口罩存量不足")}/*双分支实现功能:如果口罩的库存小于30个,提示:库存不足,否则提示:库存充足定义 口罩的数量:*/var count01 int = 20if count01 < 30 {fmt.Println("库存不足")} else {fmt.Println("库存充足")}/*多分支实现功能:根据给出的学生分数,判断学生的等级:>= 90  -----A>= 80  -----B>= 70  -----C>= 60  -----D如果用多个if 需要 使用与 or 或逻辑,因为多个if分支都会执行一次如果用多分支,有点:如果已经走了一个分支了,那么下面的分支就不会再去判断执行了。
*/var score int = 80if score >= 90 {fmt.Println("您的成绩为A级别")} else if score >= 80 {fmt.Println("您的成绩为B级别")} else if score >= 70 {fmt.Println("您的成绩为C级别")} else if score >= 60 {fmt.Println("您的成绩为D级别")} else {fmt.Println("您的成绩不及格")
}/*使用switch语句实现根据学生的分数,判断学生的等级>= 90  -----A>= 80  -----B>= 70  -----C>= 60  -----Dfallthrough 语句,会在某一个case语句执行后,下一个接邻的case也会执行,但是后面的将不会执行,除非接邻的case中也包含了fallthrough语句java中的break是必须要写,但是fallthrough可写,可不写*/var st_score int = 40switch st_score/10 {case 10:fmt.Println("您的成绩为A级别")fallthroughcase 9:fmt.Println("您的成绩为B级别")fallthroughcase 8:fmt.Println("您的成绩为C级别")fallthroughcase 7,6,5,4:fmt.Println("您的成绩为D级别")fallthroughdefault:var st int = 25var result intresult = st/10//整数相除,一定是整数fmt.Println("整数相除,一定是整数: ",result)fmt.Println("您的成绩不及格")}/*实现一个功能:求和:1+2+3+4+5:for循环中不能使用var 定义变量,可以使用:=进行初始化初始化只执行一次执行过程:先进行初始化=》进行判断=》执行循环体=》执行迭代因子i++=》进行判断=》执行循环体*/var sum int = 0for i:= 1;i<=5;i++ {sum+=i;}fmt.Println(sum)/*求和,定义一个变量,用来接收这个和
*/var str string = "hello golang你好"/*方式1:普通for循环:无法输出您好,因为存在三位定义一个汉字
*/
for i:=0;i<=len(str);i++ {
//i理解为字符串的下标fmt.Println("%c \n",str[i])
}/*方式2: for rangei 表示索引值value 表示索引的值可以输出汉字对str进行遍历,遍历的每个结果的索引值被i接收,每个结果的具体数值被value接收遍历对字符进行遍历
*/
for i,value:=range str{fmt.Println("索引为:%d,具体的值为%c :",i,value)}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/56062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI预测体彩排3采取888=3策略+和值012路或胆码测试10月11日升级新模型预测第101弹

经过100多期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;已到达90%的命中率&#xff0c;这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了&#xff0c;大…

AI核身-金融场景凭证篡改检测Baseline实践

金融领域交互式自证业务中涵盖信用成长、用户开户、商家入驻、职业认证、商户解限等多种应用场景&#xff0c;通常都需要用户提交一定的材料&#xff08;即凭证&#xff09;用于证明资产收入信息、身份信息、所有权信息、交易信息、资质信息等&#xff0c;而凭证的真实性一直是…

wordpress Contact Form 7插件提交留言时发生错误可能的原因

WordPress Contact Form 7 插件提交留言时发生错误可能有以下几种原因&#xff0c;并提供相应的解决方案&#xff1a; 1. 表单字段验证失败 原因&#xff1a; 用户输入的数据未通过表单字段的验证规则。 解决方案&#xff1a; – 检查表单字段的验证规则是否设置正确。 –…

leetcode 292.Nim游戏

思路&#xff1a;数学 这有一点博弈论的味道&#xff0c;但是我们依然可以用数学的角度去思考。 我们的入手点在这里&#xff1a; 我们是先手的前提下&#xff0c;一共有4个石头&#xff0c;但是每个人只能一次拿其中的1-3个。在一共有4个石头的情况下&#xff0c;我们无论拿…

selenium自动化测试之Junit

1. 常用的注解 将junit的索引添加到pom文件&#xff1a; <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId&…

Fortran 学习笔记001

1.输入输出及声明 1.1 Fortran程序的主要结构 程序通常以program描述来开头&#xff0c;后接定义的程序名&#xff08;可以省略&#xff0c;但建议使用并取有意义的名称&#xff0c;便于阅读&#xff09;&#xff0c;最后以end描述结尾&#xff0c;可以有三种方式&#xff1a…

基于Java实现(APP)智能停车场管理系统

移动应用开发系统设计说明书&#xff08;智能停车场管理系统&#xff09; 服务集成流程详细设计 实现功能 序号功能点1新增用户2注册用户3修改场地信息4列出场地信息5新增认证车辆6列出认证车辆7删除认证车辆8车辆进入信息录入9停车记录列表展示10出停车场信息录入 参数说明…

Pear Admin Flask Master开启步骤

由于我学的是数控技术&#xff0c;对编程是从小白自学的&#xff0c;在运行pearflask时一直没搞懂初始化数据库这一步是在哪里执行的&#xff0c;网上查了很多资料都没写&#xff0c;找了一天半的资料后终于查到了。 使用系统&#xff1a;Windows 10 Python版本&#xff1a;Py…

架构师之路-学渣到学霸历程-09

文件打包压缩命令 继续敲命令联系手感得了&#xff0c;坚持敲命令&#xff0c;使用命令行&#xff0c;让我更cool&#xff1b; 这些基础的命令要掌握&#xff0c;其实主要的就是要练手感了&#xff1b;敲吧&#xff0c;努力&#xff1b;~&#xff01; 1.gzip命令&#xff1a;…

YOLOv8实战PCB电路板缺陷检测【数据集+YOLOv8模型+源码+PyQt5界面】

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对PCB电路板缺陷数据集进行训练和优化&#xff0c;该数据集包含丰富的PCB电路板缺…

【司南大模型评测工具 API评测商业大模型】

1、司南大模型评测工具&#xff08;如果是pip安装&#xff0c;也要git clone 代码文件夹&#xff09; conda create --name opencompass python3.10 pytorch torchvision pytorch-cuda -c nvidia -c pytorch -y conda activate opencompass git clone https://github.com/open…

Hessian 序列化

Hessian 序列化 Hessian 序列化是一种轻量级的二进制 RPC 序列化方式。 一、定义与特点 定义&#xff1a; Hessian 是一种用于在不同编程语言之间进行高效对象序列化和远程方法调用的二进制协议。它主要用于在分布式系统中进行数据传输和远程过程调用&#xff08;RPC&#xff…

Oracle数据库的乐观锁和悲观锁

Oracle数据库的悲观锁和乐观锁是两种数据锁定机制。 悲观锁&#xff08;Pessimistic Locking&#xff09;在数据开始读取的时候就把数据锁定住&#xff0c;其它想插入的数据要等待直到锁的释放。这种锁定数据的方式带来的是性能的降低&#xff0c;因为在多用户并发访问的时候&…

Go语言实现长连接并发框架 - 任务管理器

文章目录 前言接口结构体接口实现项目地址最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;我们上篇博客实现了路由分组的功能&#xff0c;接下来这篇博客我们将要实现任务管理模块 接口 trait/task_mgr.go type TaskMgr interface {RouterGroupStart()StartWorker(tas…

【计网】从零开始学习http协议 ---深入理解cookie和session

我的天空里没有太阳&#xff0c; 总是黑夜&#xff0c; 但并不暗&#xff0c; 因为有东西代替了太阳。 --- 东野圭吾 --- 从零开始学习http协议 1 理解cookie1.1 什么是cookie1.2 验证cookie1.3 cookie的属性 2 理解session2.1 什么是session2.2 验证session 1 理解cooki…

刷题 链表

面试经典150题 - 链表 141. 环形链表 class Solution { public:bool hasCycle(ListNode *head) {ListNode* slow head, *fast head;while (fast ! nullptr && fast->next ! nullptr) {slow slow->next;fast fast->next->next;if (slow fast) {return…

【Linux复习】指令

文章目录 1.>2. cat3.系统命令bash和shell和kernel权限只被认证一次粘滞位引入前提知识场景解释为什么普通用户&#xff08;无w权限&#xff09;可以删除文件&#xff1f;为什么普通用户通过sudo设置文件权限为000后仍能删除文件&#xff1f; 结论 粘滞位是干什么的&#xf…

苍穹外卖P19--异常处理

以上传数据库数据重复为例&#xff0c;进行异常处理。 接口文档报错&#xff1a; 重新启动&#xff1a;

使用 Wireshark 抓取类似的 HTTP 请求包

要使用 Wireshark 抓取类似的 HTTP 请求包&#xff0c;可以按照以下步骤进行操作&#xff1a; 安装并启动 Wireshark 如果你还没有安装 Wireshark&#xff0c;可以从Wireshark 官方网站下载并安装它。 安装完成后&#xff0c;启动 Wireshark。选择网络接口 在 Wireshark 主界面…

Linux中perf的使用

perf 是 Linux 系统中的一个强大的性能分析工具&#xff0c;广泛用于内核和用户态程序的性能分析。它可以帮助开发者和系统管理员深入了解程序的 CPU 使用情况、函数调用频率、缓存命中率、硬件事件等&#xff0c;进而优化程序的性能。 下面我将详细介绍如何在 Linux 系统中使…