二、GoLang输出HelloWorld、变量定义、数据类型的转换
一、输入Hello World
go语言中,想要输出内容到控制台,package必须是main,包括方法名也必须是main,
go语言输出的语法是 fmt 库。
package mainimport "fmt"func main() {// go语言中 输出内容 使用的库是 fmt库fmt.Println("Hello world")
}
二、变量的基本类型
Go语言的基本类型有:
- boolean:布尔类型 true / false
- string :字符串类型
- 数值型:
- int8:有符号8位整型(-128到127)长度
- int16:有符号16位整型(-32768到32767)长度
- int32:有符号32位整型(-2147483648到2147483647)长度
- int64:有符号64位整型(-9223372036854775808到9223372036854775807)长度
- uint8:无符号8位整型(0到255)
- uint16:无符号16位整型(0到65535)
- uint32:无符号32位整型(0到4294967295)
- uint64:无符号64位整型(0到18446744073709551615)
- 浮点型:
- float32:32位浮点型数字
- float64:64位浮点型数字
- byte:等同于 uint8
- rune:等同于 int32
当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等。所有的内存在 Go 中都是经过初始化的。
三、定义变量
Go语言中可以不指定变量的类型,变量的类型可以让编译器来自动决定类型。
1.函数内变量的定义
go语言中定义语法的格式是,
var修饰,变量的名称在类型的前面,和java不同。
package mainimport "fmt"// go语言中 声明方法 使用 func
func main() {// 在 go语言中 声明 变量用 var// 名字在前面 类型在后面// 在 go语言中 如果声明了变量 没有给赋值的话 默认的值 就是 空串和0// 比如在 java中 如果不给值 那么就是 null go语言中 都是有默认值的// go语言中 如果定义了变量 不使用的话 会报错var name1 stringvar age1 intfmt.Println("当前人的名称是", name1, "当前人的年龄是", age1)// 定义变量 并且给变量 赋值var name stringvar age intname = "zhangsan"age = 18//重新赋值age = 19// 直接声明变量 然后给 变量赋值var sex = 1fmt.Println("当前人的名字叫 ", name, "他的年龄是", age, "性别是", sex)// 第二种定义变量的格式var name2, age2, sex2, flage2 = "zhangsan", 18, 1, true//对变量 重新赋值name2 = "李四"fmt.Println("第二种定义变量的名称是:", name2, "年龄是:", age2, "性别是:", sex2, "状态是:", flage2)// 第三种定义变量的格式name3 := "wangwu"age3 := 20//对变量重新赋值name3 = "赵六"fmt.Println("第三种定义变量的名称是:", name3, "年龄是:", age3)//连续对变量进行定义name4, age4, sex4 := "李七", 21, 1fmt.Println("第四种定义变量的名称是:"+name4, age4, sex4)// ---------------------------------------}
2.全局变量的定义
package mainimport "fmt"// 定义全局变量 任何一个函数里面都能使用
// 第一种写法
var name5 = "libai"
var age5 = 100// 第二种写法
var (name6 = "chengyaojin"age6 = 100
)// go语言中 声明方法 使用 func
func main() {fmt.Println(name5, age5)fmt.Println(name6, age6)
}
四、定义常量
常量一旦被定义,不能被修改。
package mainimport "fmt"func main() {/**1.常量类型只能定义 bool、数值类型(整数,浮点数,复数)、字符串2.变量定义了不使用会报错,常量定义了可以不使用不报错3.常量,定义的时候就指定值,不能修改*/// 显式定义常量值: 确定常量的类型const success1 int = 200// 隐式定义常量const success2 = 200// 常量定义 第一种方式const (ERROR1 = 1ERROR2 = 2ERROR3 = 3)// 第二种方式const ERROR4 = 4const ERROR5 = 5// 第三种方式// 如果定义常量时 没有给常量定义值 那么这个常量的值 将会使用 上个常量的值const (ERROR6 = 6ERROR61ERROR7 = 7ERROR71)const (code1 = "success"code2 = truecode3 = 1)fmt.Println(ERROR1, ERROR2, ERROR3)//常量 只能被初始化一次 再次初始化的话 编译报错//ERROR4 = 10fmt.Println(ERROR4, ERROR5)fmt.Println(ERROR6, ERROR61, ERROR7, ERROR71)
}
4.1常量 iota 的使用
假如我们针对用户表中,用户状态,需要用一个枚举类来表示他的状态,那么就go语言中,如何定义枚举呢?
package mainimport "fmt"func main() {/**1.iota是一个自增的数字类型2.如果中断了iota 那么必须 显式的恢复,后续会继续递增3.每次出现const的时候,iota的初始化都是 0*/// 在go语言中对状态进行枚举表示// 未使用:0// 正常: 1// 已封禁:2// 账号异常:3// 停用:4const (NOTUSE = iotaNORMALPROHIBITEDABNORMALDEACTIVATE)const (state = iotastate1state2 = "未使用"state3state4 = iota)// 假如我们的错误码 从 1000开始const (ERROR = 1000 + iotaERROR1ERROR2ERROR3ERROR4)fmt.Println(NOTUSE, NORMAL, PROHIBITED, ABNORMAL, DEACTIVATE)fmt.Println(state, state1, state2, state3, state4)fmt.Println(ERROR, ERROR1, ERROR2, ERROR3, ERROR4)
}
五、匿名变量
上面我们说过了,在go中如果变量不被使用的话,那么编译会报错。但是确实有些场景我们用不到这个变量。这个怎么处理?
使用匿名变量来解决。
package mainimport "fmt"// 定义一个函数 返回两个返回值
// 当前函数 返回两个返回值 类型是 int 和 bool
func anonymous() (int, bool) {return 0, true
}func main() {//定义匿名变量 用 "_" 来表示 匿名变量var _ int//将第一个返回值用 匿名变量来接口_, ok := anonymous()if ok {fmt.Println("方法返回的是true")}}
六、数据类型的转换
package mainimport ("fmt"strconv "strconv"
)func main() {// ====================== 数据类型之间的转换var a int8 = 12var b = uint8(a)// 将 float32 强制转成 int32 类型// 浮点类型转成int类型 后面的数字 肯定是会丢失的var f float32 = 3.14var c = int32(f)//int 转成 float64var f1 = float64(a)fmt.Println(b)fmt.Println(c)fmt.Println(f1)// int 转字符串name := 2000var nameString stringnameString = strconv.Itoa(name)fmt.Println("将int类型转成字符串类型:", nameString)//字符串转 int类型var ageString string = "19"var age intage, err := strconv.Atoi(ageString)if err != nil {fmt.Println("报错了")}// parseInt 是进制转换fmt.Println("将字符串类型转成int类型:", age)//将string转成boolvar stateBoolString = "true"var stateBool boolstateBool, err = strconv.ParseBool(stateBoolString)if err != nil {return}fmt.Println("将string转成bool类型:", stateBool)//将 bool转成 stringvar flage = truevar flageString stringflageString = strconv.FormatBool(flage)fmt.Println("将bool类型转成string类型:", flageString)//将string转成 floatfloatString := "3.14156"var floatF float64//bitSize是转换的位数 你要转成float32 还是 float64floatF, err = strconv.ParseFloat(floatString, 64)if err != nil {return}fmt.Println("将string转成float64类型:", floatF)//将float转成stringfloatF2 := 3.141569var floatF2String stringfloatF2String = strconv.FormatFloat(floatF2, 'f', -1, 64)fmt.Println(floatF2String)
}
相关文章:

二、GoLang输出HelloWorld、变量定义、数据类型的转换
一、输入Hello World go语言中,想要输出内容到控制台,package必须是main,包括方法名也必须是main, go语言输出的语法是 fmt 库。 package mainimport "fmt"func main() {// go语言中 输出内容 使用的库是 fmt库fmt.Pr…...

Mars3d图层树//图层管理加载时设置默认折叠的状态
问题:Mars3d图层树//图层管理加载时设置默认折叠的状态。 设置参考: 有个参数 open:false,写在对应的图层配置下,比如某个节点不展示,就对这个节点配置下。 如果全局,可以搜下这个widget内的代码ÿ…...

区块链技术|DApp与传统应用程序的关键区别
在数字时代,应用程序已经成为我们生活的一部分,无论是社交媒体、金融服务还是娱乐媒体,应用程序几乎无处不在。然而,随着区块链技术的崭露头角,一种新型应用程序——去中心化应用程序(DApp)正在…...

Python 加密解密技巧大揭秘:让你的数据安全无忧
建议食用原文链接效果更佳 Python 加密解密技巧大揭秘:让你的数据安全无忧 今天我们将探讨在 Python 中常见的加密解密算法,并通过代码案例来帮助大家更好地理解它们的实现。 在开始之前,请确保您已经安装了 pycryptodome 这个库。您可以使用…...

C#判断字符是否为utf16编码
unity截取显示微信昵称后,出现异常Error: UTF-16 to UTF-8 conversion failed because the input string is invalid,原因是截取字符串刚好截到了表情后面,解决思路是从截取到的索引向前遍历,找第一个不是utf16编码的字符…...

centos7上hive3.1.3安装及配置
1、安装背景; hive是基于hadoop的数据仓库软件,部署运行在linux系统之上,安装之前必须保证hadoop环境运行正常,hive本身不是分布式软件,它的分布式主要是借助hadoop实现,存储是hdfs,计算是mapr…...

Redis面试题(笔记)
目录 1.缓存穿透 2.缓存击穿 3.缓存雪崩 小结 4.缓存-双写一致性 5.缓存-持久性 6.缓存-数据过期策略 7.缓存-数据淘汰策略 数据淘汰策略-使用建议 数据淘汰策略总结 8.redis分布式锁 setnx redission 主从一致性 9.主从复制、主从同步 10.哨兵模式 服务状态监…...

iPhone 15 Pro展示设计:7项全新变化呈现
我们不应该再等iPhone 15 Pro在苹果9月12日的“Wonderlust”活动上发布了,而且可能会有很多升级。有传言称,iPhone 15 Pro将是自iPhone X以来最大的飞跃,这要归功于大量的新变化,从带有更薄边框的新钛框架到顶级A17仿生芯片和动作…...

【六袆 - Windows】PL/SQL instantclient安装包下载;PL/SQL双击登录配置
安装 PL/SQL 15 OMIT Oracle Instant Client Downloads for Microsoft Windows (x64) 64-bit https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 配置 # tnsnames.ora Network Configuration File:E:\oracle\product\10.2.0\db_1\ne…...

Springboot+mybatis-plus+dynamic-datasource 切换数据源失败问题总结
Springbootmybatis-plusdynamic-datasourceDruid 多数据源 切换数据源失败总结 文章目录 Springbootmybatis-plusdynamic-datasourceDruid 多数据源 切换数据源失败总结0.前言1. dynamic-datasource 切换数据源失败场景总结1. spring-batch整合情况下切换数据源异常解决办法&am…...

QuantLib学习笔记——InterestRate的应用
⭐️ 单利还是复利 巴菲特老爷子有句名言:“人生就像滚雪球,重要的是发现很湿的雪和很长的坡。” 很湿的雪,指的就是复利。很长的坡,指的就是时间。很湿的雪和很长的坡组合起来,就能滚成巨大的雪球。 哈哈࿰…...

记录--解决前端内存泄漏:问题概览与实用解决方案
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 内存泄漏是前端开发中的一个常见问题,可能导致项目变得缓慢、不稳定甚至崩溃。在本文中,我们将深入探讨在JavaScript、Vue和React项目中可能导致内存泄漏的情况,并提…...

IP初学习
1.IP报文 首部长度指的是报头长度,用于分离报头和有效载荷 2.网段划分 IP地址 目标网络 目标主机 3.例子 4.特殊的IP地址 5.真正的网络环境 6.调制解调器 “猫”,学名叫宽带无线猫 7.NAT 源IP在内网环境不断被替换 8.私有IP不能出现在公网上 因…...

live5555 testProgs目录
文章目录 测试testProgs视频流直播流注意: 测试 testProgs 当涉及到许多示例程序时,解释每一个都可能会变得非常冗长。然而,我可以为你提供一些关键示例程序的简要解释,以帮助你了解每个示例的用途和功能: testOnDem…...

yolov5模型s,l,m,x的区别
yolov5s 是什么?yolov5系列最小的模型,s是small。 适合什么情况下使用?适合在计算资源有限的设备上使用。如移动设备或边缘设备。 速度和准确率:速度最快,准确率最低。 输入分辨率:通常为640x640 # Param…...

Springboot 实践(13)spring boot 整合RabbitMq
前文讲解了RabbitMQ的下载和安装,此文讲解springboot整合RabbitMq实现消息的发送和消费。 1、创建web project项目,名称为“SpringbootAction-RabbitMQ” 2、修改pom.xml文件,添加amqp使用jar包 <!-- RabbitMQ --> <dependency&g…...

YoloV8改进策略:轻量级Slim Neck打造极致的YoloV8
文章目录 摘要Yolov8官方结果源码改进方法测试结果总结摘要 论文链接:https://arxiv.org/ftp/arxiv/papers/2206/2206.02424.pdf 作者研究了增强 CNN 学习能力的通用方法,例如 DensNet、VoVNet 和 CSPNet,然后根据这些方法的理论设计了 Slim-Neck 结构。 使用轻量级卷积…...

使用java代码给Excel加水印,代码全,进阶版
以下代码,亲测可以跑通 1、上一篇博客用了Apache POI库3.8的版本的形式对Excel加了水印,但是最近主线版本用了4.1.2的形式,由于为了保持版本的兼容性,下面有开发了Apache POI的4.1.2的版本号的方案。 pom文件为: <d…...

day37:网编day4,多点通信和并发服务器
一、广播接收方: #include <myhead.h>#define ERR_MSG(msg) do{\ fprintf(stderr,"__%d__\n",__LINE__);\ perror(msg);\ }while(0)#define BRD_IP "192.168.114.255" #define BRD_PORT 8888int main(int argc, const char *argv[]) {//…...

STM32 硬件IIC 控制OLED I2C卡死问题
1. STM32L151C8T6 硬件IIC 控制OLED 屏,OLED 驱动IC CH1116G, 查阅OLED 数据手册 2. STM32 硬件IIC 初始化,用的标准库,固件库 // stm32l151c8t6 as master, oled control ic (CH1116G) as slave, and communicate by master iic2 void STM3…...

Redis图文指南
1、什么是 Redis? Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。 Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它在开发人员中很受欢迎。 Redis不是通过迭代或者排序方式处理数据,而是…...

C++17 std::string_view介绍与使用
std::string_view介绍 std::string_view是C17增加的新内容。它是一个轻量级的、只读的字符串视图,可以用来表示一个字符串或字符串的一部分。std::string_view可以提高代码的可读性、可维护性和性能。 std::string_view与std::string的主要区别在于,st…...

写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(下)
目录 极狐GitLab嵌入式开发场景解决方案 3.1 高可用部署与灾备 3.2 组织管理 3.3 分支策略 3.4 分支保护 3.5 推送规则 3.6 代码评审 3.7 数据保护 3.8 其他相关 本文来自 武让 极狐GitLab 高级解决方案架构师 💡 前两篇文章,作者介绍了嵌入式开…...

Matlab论文插图绘制模板第110期—水平双向柱状图
在之前的文章中,分享了很多Matlab柱状图的绘制模板: 进一步,再来看一种特殊的柱状图:水平双向柱状图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下…...

【广州华锐互动】VR全景工厂虚拟导览,虚拟现实技术提升企业数字化信息管理水平
随着工业4.0的到来,VR工厂全景制作成为了越来越多工业企业的选择。传统的工厂管理方式往往存在诸多问题,如信息不对称、安全隐患等。为了解决这些问题,VR工厂全景制作应运而生,它通过结合虚拟现实现实技术和数据采集技术ÿ…...

idea 创建mybatis xml文件时找不到
1、File >Settings 如图 : 2、添加模板:如下图 3、添加xml模板 如下图: 模板内容: <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//E…...

Python钢筋混凝土结构计算.pdf-混凝土构件计算
计算原理: 代码实现: #钢筋混凝土参数 def c_hrb(): global fcuk,HRB,Ec,fc,ft,ftk,Es,fy,fyp,fyk global a1,epsilon_cu fcukEcfcftftk0.0 HRBEsfyfypfyk0.0 #矩形应力图系数a1,C50以下为1.0 a11.0 #正截面混凝土极限压应变epsilon_cu&#…...

mysql5.7-基于docker-compose搭建主从同步
一、环境信息 系统版本:CentOS Linux release 7.9.2009 (Core) cat /etc/centos-release Docker版本:Docker version 20.10.6, build 370c289 docker --version Docker-compose版本:Docker Compose version v2.10.2 docker-compose --versio…...

【USRP】调制解调系列5:16QAM、32QAM、64QAM、256QAM、1024QAM、基于labview的实现
QAM 正交振幅键控是一种将两种调幅信号(2ASK和2PSK)汇合到一个信道的方法,因此会双倍扩展有效带宽,正交调幅被用于脉冲调幅。正交调幅信号有两个相同频率的载波,但是相位相差90度(四分之一周期,…...

Odoo|5分钟创建自定义的业务系统唯一序列号
在业务操作中,经常会遇到需要生成全局唯一序列号数据的情况,比如订单号、报价单号等。为了确保数据的唯一性和准确性,通常我们会使用Redis或其他分布式锁机制来实现。然而,很多人可能不知道,odoo框架本身提供了一个原生…...