【go语言实践】基础篇二 -- 值类型、命名规范、导入包及go指针

2023-12-12 01:04

本文主要是介绍【go语言实践】基础篇二 -- 值类型、命名规范、导入包及go指针,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

golang中值类型和引用类型

go中值类型变量直接存储值,内存通常在栈中分配,引用类型变量存储的是一个地址,这个地址对应的对应的空间才真正存储数据,当没有任何变量引用该地址时,该地址对应的数据空间就会被go的GC(垃圾回收机制)回收。开发人员无需关注内存回收问题。

  • 值类型,这类包含基本的数据类型,int、float、bool、string及数组和结构体struct
  • 引用类型:指针、slice切片、map、管道channel、interface等

go语言标识符命名规则

  • 26个英文字母大小写,0-9,_组成
  • 数字不可以开头
  • 严格区分大小写
  • 标识符不能包含空格
  • 下划线"_"本身在go中是一个特殊的标识符,称为空表示符,可以代表任意其他字符,它对应的值会被忽略,所以仅能作为占位符使用,不能作为标识符使用(只用_时不行)
  • 不能一系统保留关键字作为标识符

go语言包命名规范

  • 包名与目录尽量保持一致,不要与标准库冲突
  • 变量名、函数名、常量名通常采用驼峰写法
  • 如果变量名、函数名、常量名首字母大写,可以被其他包访问,如果首小写,则只能在本包使用。go语言中没有显示定义private、public的概念。

go语言引入自己编写的包

假设我们在src目录下,创建了go_code/test/demo1目录,go源文件存放在demo1目录下,那么我们想在其他目录下引入该包,可以这样写:

import ("fmt""go_code/test/demo1"
)

我们不需要写全绝对路径,在我们已经配置了系统环境变量GOPATH的情况下,也不用写src,go默认会给我们加src

go语言指针

go派生数据类型总览

  • 指针
  • 数组
  • 结构体
  • 管道(channel)
  • 函数
  • 切片(slice)
  • 接口
  • map

go中所有值类型都有对应的指针类型,形式都为*type,type为具体的数据类型。值类型包括基本数据类型、数组、结构体

声明一个int类型指针:

var ptr *int

我们不能将一个整形的地址赋值给一个double类型的指针

这篇关于【go语言实践】基础篇二 -- 值类型、命名规范、导入包及go指针的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/482698

相关文章

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

Go中select多路复用的实现示例

《Go中select多路复用的实现示例》Go的select用于多通道通信,实现多路复用,支持随机选择、超时控制及非阻塞操作,建议合理使用以避免协程泄漏和死循环,感兴趣的可以了解一下... 目录一、什么是select基本语法:二、select 使用示例示例1:监听多个通道输入三、select的特性四、使用se

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路