Go语言入门心法(一)

一: go语言中变量认知 


go语言中变量的定义:  (要想飞|先会走)||(翻身仗|抹遗憾         (1)go语言中变量认知升维(2)go语言中变量与强类型语言java类似,变量使用必须先声明后使用(3)go语言中变量标准的声明使用var关键字进行声明: var 变量名 变量类型;变量声明后必须使用,否则编译器会报错(4)go语言中变量声明时可以赋予初始值,如果不赋初始值,则默认为各变量的类型的默认值 var name string = "外卖小哥哥"(5)go语言中变量如果声明的同时赋予初始值,则可以省略变量的类型: var age = 30(6)go语言中变量什么并附初始值时可以使用简易默认,也是go语言中变量定义的常用方式: name := "boss";此时可以省略var关键字与数据类型(7)go语言可以对多个变量同时进行块声明:var (personName := "张三"personAge  := 30sex := 1marry := false)

附录实例一:


 

package mainimport ("fmt""reflect"
)/*
go语言中变量的定义域:(1)go语言中变量认知升维(2)go语言中变量与强类型语言java类似,变量使用必须先声明后使用(3)go语言中变量标准的声明使用var关键字进行声明: var 变量名 变量类型;变量声明后必须使用,否则编译器会报错(4)go语言中变量声明时可以赋予初始值,如果不赋初始值,则默认为各变量的类型的默认值 var name string = "外卖小哥哥"(5)go语言中变量如果声明的同时赋予初始值,则可以省略变量的类型: var age = 30(6)go语言中变量什么并附初始值时可以使用简易默认,也是go语言中变量定义的常用方式: name := "boss";此时可以省略var关键字与数据类型(7)go语言可以对多个变量同时进行块声明:var (personName := "张三"personAge  := 30sex := 1marry := false)
*/
func main() {a := 1b := "test"c := truefmt.Println("a变量类型: ", reflect.TypeOf(a))fmt.Println("b变量类型: ", reflect.TypeOf(b))fmt.Println("c变量类型: ", reflect.TypeOf(c))fmt.Println("=========================变量类型转换===============================")var d int16 = 97fmt.Println("变量a的值为: ", d, " ,变量的类型为: ", reflect.TypeOf(d))e := int32(d)fmt.Println("变量e的值为: ", e, " ,变量的类型为: ", reflect.TypeOf(e))fmt.Println("变量e的类型为字符串: ", string(e))fmt.Println("变量e的类型为字符串string : ", reflect.TypeOf(string(e)))desc := `再进行变量类型转换中需要特别注意转换后的数值是否发生变化`fmt.Println("注意事项: ", desc)var as int32 = 1234567891fmt.Println("变量as的值:", as, " ,变量类型: ", reflect.TypeOf(as))fmt.Println("转换as的类型为int16,变量as的值为: ", int16(as), " ,变量as类型: ", reflect.TypeOf(int16(as)))
}

实例运行效果:


GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_VariableParameterDifinition_go.exe D:\program_file\go_workspace\org.jd.data\VariableParameterDifinition.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_VariableParameterDifinition_go.exe
a变量类型:  int
b变量类型:  string
c变量类型:  bool
=========================变量类型转换===============================
变量a的值为:  97  ,变量的类型为:  int16
变量e的值为:  97  ,变量的类型为:  int32
变量e的类型为字符串:  a
变量e的类型为字符串string :  string
注意事项:  再进行变量类型转换中
             需要特别注意转换后的数值是否发生变化

变量as的值: 1234567891  ,变量类型:  int32
转换as的类型为int16,变量as的值为:  723  ,变量as类型:  int16

Process finished with the exit code 0
 


附录实例二:


package mainimport ("fmt""reflect"
)/*
变量交换值,使用变量简短什么方式来声明及赋值
*/
func main() {var name stringvar age intvar salary float32fmt.Println("变量a与b交换值:")a := 1b := 3a, b = b, afmt.Println("a:", a)fmt.Println("b:", b)println("name变量的默认初始值: ", name)println("age变量的初始值: ", age)println("salary的默认初始值: ", salary)/*go语言中变量的定义与java中定义的变量类型,都需要先声明后使用的(1)申明变量的语法:var 变量名  类型这样声明的变量,没有赋予初始值时,go会自动赋予该类型变量的默认初始值字符串默认初始值为空串(2)定义变量的同时赋予初始值: 标准的声明变量赋值var typeNum int = 0(3)同时声明多个变量时,没有赋予初始值,则变量类型必须保留var (a stringb intc stringd float)(4) 编译器推导类型格式var num  = 20*/var college stringprintln("变量college= ", college)var typeNum int64println("变量type= ", typeNum)/*(1)go语言可以批量声明变量,声明变量的同时可以赋予初始值(2)go语言中变量声明后必须使用,但是常量声明后,不一定使用*/var (// 赋值的变量,可以省略类型,go编译器会自动进行类型推断;为简介,通常附初始值的变量可以省略变量类型tName string = "张三"tAge  int    = 28tSex  bool)var numCount = 20println("numCount type is ", reflect.TypeOf(numCount))println("numCount = ", numCount)str := "这是第一个go语言程序"println("str=", str)strNum := `通过反引号可以定义字符串多行字符串定义`println("多行字符串定义: strNum = ", strNum)desc := `(1) 在go语言中有两种类型uint8:代表了 ASCII码的一个字符串rune类型: 代表了UTF-8格式的一个字符(如中文,日文或者其他复合字符,本质就是int32类型)`println(desc)english := 'a'chinese := '我'fmt.Println(english)fmt.Println(chinese)println("名称: ", tName, " ,年龄: ", tAge, " ,性别(true-男;false-女): ", tSex)}

 


运行效果:


OOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ChangeParamaValue_go.exe D:\program_file\go_workspace\org.jd.data\ChangeParamaValue.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ChangeParamaValue_go.exe
变量a与b交换值:
a: 3
b: 1
name变量的默认初始值:
age变量的初始值:  0
salary的默认初始值:  +0.000000e+000
变量college=
变量type=  0
numCount type is  (0xed14a0,0xe9c920)
numCount =  20
str= 这是第一个go语言程序
多行字符串定义: strNum =
             通过反引号可以定义字符串
             多行字符串定义


            (1) 在go语言中有两种类型
             uint8:代表了 ASCII码的一个字符串
             rune类型: 代表了UTF-8格式的一个字符(如中文,日文或者其他复合字符,本
质就是int32类型)

97
25105
名称:  张三  ,年龄:  28  ,性别(true-男;false-女):  false

Process finished with the exit code 0
 


二: go语言常量认知


go语言中的常量的定义:(1)使用关键字const定义常量;(2)常量申明后可以不使用;不想变量那样,定义后必须使用,否则编译检查报错(3)常量的值在初始化后,不能修改(4)常量枚举: 针对一个有穷序列集合而言,一个集的枚举就是列出有穷序列集的所有成员

package mainimport ("fmt"
)/*go语言中的常量的定义:(1)使用关键字const定义常量;(2)常量申明后可以不使用;不想变量那样,定义后必须使用,否则编译检查报错(3)常量的值在初始化后,不能修改(4)常量枚举: 针对一个有穷序列集合而言,一个集的枚举就是列出有穷序列集的所有成员
*/func main() {fmt.Println("---------------循序渐进代码实操演示学习go编程语言--------------")fmt.Println("-------------------------go语言中定义常量------------------------------")const PersonName string = "GO语言实战系列"println("第一个常量: ", PersonName)const aa = 20const bb int16 = 50println("常量定义时,可以使用编译器进行类型推断,从而可以省略变量的类型")println("常量[a] = ", aa)println("常量[b]= ", bb)println("常量与变量都可以批量定义:")const (personName    string = "小张"personAge     int16  = 30personAddress        = "北京市海淀区马连洼街道120路105号")println("使用批量定义的常量:")println("名称: ", personName, " ,年龄: ", personAge, " ,上班等死地址: ", personAddress)/*go语言现阶段还没有枚举,但是可以通过使用一种特殊的常量“iota”类模拟枚举iota在const关键字出现时被重置为0,const中的每新增一行常量申明,将使iota进行一次计数,可以简单第将iota理解为const语句块中的行索引*/const (a = iotabc = "你好呀,欢迎来到特工世界"de = iota)println("a:", a)println("b:", b)println("c:", c)println("d:", d)println("e:", e)}

实例运行效果:


GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ConstParameterDefinition_go.exe D:\program_file\go_workspace\org.jd.data\ConstParameterDefinition.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ConstParameterDefinition_go.exe
---------------循序渐进代码实操演示学习go编程语言--------------
-------------------------go语言中定义常量------------------------------
第一个常量:  GO语言实战系列
常量定义时,可以使用编译器进行类型推断,从而可以省略变量的类型
常量[a] =  20
常量[b]=  50
常量与变量都可以批量定义:
使用批量定义的常量:
名称:  小张  ,年龄:  30  ,上班等死地址:  北京市海淀区马连洼街道120路105号
a: 0
b: 1
c: 你好呀,欢迎来到特工世界
d: 你好呀,欢迎来到特工世界
e: 4

Process finished with the exit code 0

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

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

相关文章

微信小程序通过 movable-area 做一个与vuedraggable相似的上下拖动排序控件

因为只是做个小案例 我就直接代码写page页面里了 其实很简单 组件稍微改一下就好了 wxss /* 设置movable-area的宽度 */ .area{width: 100%; }/* a b c 每条元素的样式 */ movable-view {width: 100%;background-color: red;height: 40px;line-height: 40px;color: #FFFFFF;tex…

如何进行pyhon的虚拟环境创建及管理

无论服务器或者本地,创建虚拟环境都是: 【Python】搭建虚拟环境_python创建虚拟环境_今天自洽了吗的博客-CSDN博客 虚拟环境绑定到项目 这个是运行环境,可以切换任意运行环境 如果是服务器上:可以先source xx/bin/active&#xf…

Python皮卡丘

系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.csdn.net/article/details/1295031234漂浮爱心https://want…

canvas基础2 -- 形状

七巧板 七巧板本质上就是 分别由几个直线 拼成一个个图形,再将这些图形结合起来 var tangram [{ p: [{ x: 0, y: 0 }, { x: 800, y: 0 }, { x: 400, y: 400 }], color: "#caff67" },{ p: [{ x: 0, y: 0 }, { x: 400, y: 400 }, { x: 0, y: 800 }], col…

1808_ChibiOS基本的架构介绍

全部学习汇总: GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 简单看了一下ChibiOS的架构介绍,感觉这种OS以及组件非常适合快速构建一个应用。这里做一个简单的资料整理。。 1. 不同于其他的OS&#…

JVM面试题:(三)GC和垃圾回收算法

GC: 垃圾回收算法: GC最基础的算法有三种: 标记 -清除算法、复制算法、标记-压缩算法,我们常用的垃圾回收器一般 都采用分代收集算法。 标记 -清除算法,“标记-清除”(Mark-Sweep)算法,如它的…

Vuex获取、修改参数值及异步数据处理

一、Vuex简介 1.1 vuex介绍 Vuex是专门为vue应用程序开发的状态管理模式,将组件的共享状态抽取出来,以一个全局单例模式进行管理,组件树构成一个巨大的视图,不管组件在树的何种位置,任何组件都能获取到状态和触发行为…

个股期权、商品期权、股指期权开户攻略(全网最全)

在进行个股期权、商品期权、股指期权交易之前,首先需要选择一个可靠的期权分仓平台。这样才能是想零门槛开通期权账户和交易权限,下文详细为大家科普个股期权、商品期权、股指期权开户攻略(全网最全) 一、期权分仓平台的选择 目前…

mac 版hadoop3.2.4 解决 Unable to load native-hadoop library 缺失文件

mac 版hadoop3.2.4或其他版本 Unable to load native-hadoop library 缺失文件 Native 包报错缺失: 1. hadoop-3.2.4/lib/native里加*.dylib 2. hadoop-3.2.4/etc/hadoop/hadoop-env.sh 加或修改 export HADOOP_OPTS"-Djava.library.path/Users/lvan/Documen…

Ubuntu下怎么配置vsftpd

2023年10月12日,周四中午 目录 首先要添加一个系统用户然后设置这个系统用户的密码给新创建的系统用户创建主目录启动vsftpd服务查看vsftpd服务的状态打开外界访问vsftpd服务所需的端口获取服务器的IP地址大功告成 首先要添加一个系统用户 useradd 用户名然后设置…

基于内存的分布式NoSQL数据库Redis(一)介绍与安装

文章目录 基于内存的分布式NoSQL数据库Redis知识点01:课程目标知识点02:NoSQL与RDBMS知识点03:Redis的功能与应用场景知识点04:Redis的Linux版单机部署后记 基于内存的分布式NoSQL数据库Redis 知识点01:课程目标 整体…

短视频账号矩阵系统源码saas===独立部署

前言: 短视频账号矩阵是指在不同的短视频平台上,一个个人或企业所拥有的账号数量和分布情况。由于不同的短视频平台受众人群和内容类型等因素不同,因此拥有更多账号可以在更广泛的受众中传播内容,提高曝光度和流量。短视频账号矩阵…

Air001 TIM1高级定时器单脉冲输出模式使用

Air001 TIM1高级定时器单脉冲输出模式使用 ✨本例程基于合宙官方提供的标准库以及Demo工程作为验证参考。📍官方提供的SDK包资源:https://gitee.com/openLuat/luatos-soc-air001🌿想了解STM32高级定时器单脉冲输出模式了解可以参考阅读:https…

多输入多输出 | MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测

MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测 目录 MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 C…

哈希的应用--位图和布隆过滤器

哈希的应用--位图和布隆过滤器 位图1. 位图概念2. 位图在实际中的应用3. 位图相似应用给定100亿个整数,如何找到只出现一次的整数?1个文件100亿int,1G内存,如何找到不超过2次的所有整数 布隆过滤器1. 布隆过滤器的提出2. 布隆过滤…

uniapp apple 苹果登录 离线本地打包

官方文档 uni-app官网 文档写的不全,没有写离线打包流程 加lib 签名里带 sign in with apple hbuilder开关 代码 测试代码,获取app里所有的provider uni.getProvider({service: oauth,success: function (res) {console.log(res.provider)uni.showT…

WIN10如何搭建自己的博客

引言: 路线说明: 在CSDN,博客园,简书等平台,可以直接在上面发表,用户交互做的好,写的文章百度也能搜索的到,这样速度也是最快的,不费心运营啥的。缺点是比较不自由&…

Elasticsearch 分片内部原理—近实时搜索、持久化变更

目录 一、近实时搜索 refresh API 二、持久化变更 flush API 一、近实时搜索 随着按段(per-segment)搜索的发展,一个新的文档从索引到可被搜索的延迟显著降低了。新文档在几分钟之内即可被检索,但这样还是不够快。 磁盘在这…

项目管理PMP考试技巧

(一)关键词篇 第 1 章 引论 1. 看到“驱动变革”——选项中找“将来状态” 2. 看到“依赖关系”——选项中找“项目集管理” 3. 看到“价值最大化”——选项中找“项目组合管理” 4. 看到“可行性研究”——选项中找“商业论证” 第 2 章 项目运行…

GIS 算法原理记录总结二:距离、方位角、沿线上的点的扩展算法及其使用(一)

GIS 算法原理记录总结二:距离、方位角、沿线上的点的扩展算法及其使用(一) 在了解了距离算法、方位角算法之后,就可以根据距离、方位角进行一些扩展应用。这里罗列如下: 一、计算线段中点(turf.midpoint&…