Golang 入门笔记(二)中
目录
文章目录
- 目录
- 转换不同的数据类型
- 指针
- 指针地址和指针类型
- 使用指针修改值
- 使用指针变量获取命令行的输入信息
- 创建指针 new()
- 变量生命期
- 栈
- 堆
- 变量逃逸
- 字符串应用
- 计算字符串长度
- 遍历字符串
- 获取字符串的某一段字符
转换不同的数据类型
可以用类型+变量的方式强制转换:
int(a)
注意大数变小数时会有截断问题。
比如:
var a int32=123456789
int16(a)
a就会变小
指针
指针概念在Go语言中被拆分为两个核心概念:
1类型指针
允许对这个指针类型的数据进行修改。
不能进行偏移和运算。
2切片
由指向起始元素的原始指针、元素数量和容量组成。
安全指针不越界
指针地址和指针类型
每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。
ptr:=&v
ptr 为指针
fmt.Printf("%p ",ptr)
输出v的地址
使用*ptr 可以得到v的值。
使用指针修改值
通过指针可以修改值。
func swap(a,b *int){
t:=*a
*a:=*b
*b=t
}
x,y:=1,2
swap(&x,&y)
使用指针变量获取命令行的输入信息
package main//导入系统包
import ("flag""fmt"
)//定义命令行参数
var mode = flag.String("mode1", " ", "process mode")func main() {flag.Parse()fmt.Println(*mode)
}
PS E:\go\mywork> go run parse.go --mode1=ffast
ffast
创建指针 new()
str:=new(string)
*str=“ninja”
变量生命期
变量能够使用的生命范围
栈
拥有特殊规则的线性表数据结构。
先进后出。
内存的分配和释放,相当快。
函数结束后出栈。
堆
无规则数据,大小位置,存放位置未知,过一段时间后需要释放数据。
内存碎片
变量逃逸
自动决定变量分配方式,提高运行效率。
编译器根据变量的特征和生命周期,决定使用堆还是栈。
1逃逸分析
不影响程序运行的到栈,其他存活的主程序结束的到堆。
2 取地址发生逃逸
这两个较为复杂,以后详细分析
3 原则
go语言不希望开发者把精力放在内存如何分配上。
编译器的原则是
变量是否被取地址
变量是否逃逸。
字符串应用
字符串类型在业务中的应用可以说是最广泛的。
计算字符串长度
Go 语言的内建函数 len(),可以用来获取切片、字符串、通道(channel)等的长度。
下面的代码可以用len()来获取字符串的长度。
遍历字符串
1遍历每一个ASCII字符
使用for
for i:=0;i<len(theme);i++
2 按Unicode字符遍历字符串
使用range
for _,s:=range theme
获取字符串的某一段字符
可以使用string.Index()函数在字符串中搜索另外一个字串。
Golang 入门笔记(二)中相关推荐
- MySql入门笔记二~悲催的用户
这些是当年小弟的MySql学习笔记,木有多么复杂的结构操作,木有多炫丽的语句开发,木有...总之就是木有什么技术含量... 日复一日,彪悍的人生伴随着彪悍的健忘,运维操作为王,好记性不如烂笔头,山水有 ...
- 【Golang入门】二、Go语言快速开发
需求:开发一个hello.go程序,要求输出"hello world". 采用VScode进行Golang的开发,因此这一系列博客的代码均在VScode编译器上编译实现. 这里我们 ...
- 机器学习入门 笔记(二) 机器学习基础概念
第二章 机器学习基础概念 1.机器的数据 2.机器学习的主要任务 3.监督学习和非监督学习 4.批量.在线学习.参数.非参数学习 5.哲学思考 6.环境的搭建 1.机器的数据 我们以鸢尾花的数据为例. ...
- golang入门实战(二)
golang入门实战 github 接上篇 接口数据时间格式 token校验中间件 多平台打包 未完待续 github 项目完整代码–github 接上篇 golang入门实战(一) 接口数据时间格式 ...
- 区块链安全入门笔记(二) | 慢雾科普
虽然有着越来越多的人参与到区块链的行业之中,然而由于很多人之前并没有接触过区块链,也没有相关的安全知识,安全意识薄弱,这就很容易让攻击者们有空可钻.面对区块链的众多安全问题,慢雾特推出区块链安全入门笔 ...
- 海思入门笔记二:HiBurn工具实现镜像烧写
这里写自定义目录标题 海思入门笔记:HiBurn工具实现镜像烧写 第一步:裸板可使用串口先烧录boot(速度慢) 第二步:已烧好boot的板子,可使用USB快速烧录 海思入门笔记:HiBurn工具实现 ...
- Golang 入门笔记(二)下
目录 文章目录 目录 修改字符串 连接字符串 格式化 格式表 BASE64编码 常量 枚举--一组常量值 类型别名与类型定义 非本地类型不能定义方法 在结构体成员嵌入时使用别名 紧接上文 修改字符串 ...
- Golang 入门笔记(二)上
目录 文章目录 目录 Go 语言基本语法与使用 2.1 变量 2.1.1 声明变量 2.1.2 初始化变量 2.1.3 多个变量同时赋值 2.1.4 匿名变量---没有名字的变量 2.2 数据类型 整 ...
- 【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记(二)
你好,我是阿ken?? 版权声明:本文为CSDN博主「」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 另外,博文中某些图片或内容可能出自网络,如有侵权或问题,请及 ...
最新文章
- 51Nod-1082 与7无关的数【进制+打表】
- spark SQL读取ORC文件从Driver启动到开始执行Task(或stage)间隔时间太长(计算Partition时间太长)且产出orc单个文件中stripe个数太多问题解决方案...
- B2C和B2B之间有多大差距
- html中文段落,HTML 段落-JavaScript中文网-JavaScript教程资源分享门户
- 相同类方法之间调用,注解失效的问题
- CS224n学习笔记1-nlp介绍和词向量
- python中加等是什么意思_Python创建类的时候,加()和不加有什么区别、联系?
- 计算机的配置以及简单的操作
- update语句修改报错问题处理
- 如何在Windows 10中启用关闭事件跟踪程序
- Linux Command - alien
- 在内核中实现URL重定向
- 代码自动生成:Github Copilot
- android手势第一次设置密码_Android实现手势密码功能
- ODB 入门介绍(一)
- js下载视频(mp4格式)
- 前端面试之----跨域解决方案之一(CORS)
- namespace MyProject 买来的二手车怎么查询是否发生过违章或交通事故,要查二手车的维修保养记录和出险记录?
- 计算机网络拓扑有,计算机网络拓扑
- 【19周-星耀】FASTER!FASTER!FASTER!