目录

文章目录

  • 目录
    • 转换不同的数据类型
    • 指针
      • 指针地址和指针类型
      • 使用指针修改值
      • 使用指针变量获取命令行的输入信息
      • 创建指针 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 入门笔记(二)中相关推荐

  1. MySql入门笔记二~悲催的用户

    这些是当年小弟的MySql学习笔记,木有多么复杂的结构操作,木有多炫丽的语句开发,木有...总之就是木有什么技术含量... 日复一日,彪悍的人生伴随着彪悍的健忘,运维操作为王,好记性不如烂笔头,山水有 ...

  2. 【Golang入门】二、Go语言快速开发

    需求:开发一个hello.go程序,要求输出"hello world". 采用VScode进行Golang的开发,因此这一系列博客的代码均在VScode编译器上编译实现. 这里我们 ...

  3. 机器学习入门 笔记(二) 机器学习基础概念

    第二章 机器学习基础概念 1.机器的数据 2.机器学习的主要任务 3.监督学习和非监督学习 4.批量.在线学习.参数.非参数学习 5.哲学思考 6.环境的搭建 1.机器的数据 我们以鸢尾花的数据为例. ...

  4. golang入门实战(二)

    golang入门实战 github 接上篇 接口数据时间格式 token校验中间件 多平台打包 未完待续 github 项目完整代码–github 接上篇 golang入门实战(一) 接口数据时间格式 ...

  5. 区块链安全入门笔记(二) | 慢雾科普

    虽然有着越来越多的人参与到区块链的行业之中,然而由于很多人之前并没有接触过区块链,也没有相关的安全知识,安全意识薄弱,这就很容易让攻击者们有空可钻.面对区块链的众多安全问题,慢雾特推出区块链安全入门笔 ...

  6. 海思入门笔记二:HiBurn工具实现镜像烧写

    这里写自定义目录标题 海思入门笔记:HiBurn工具实现镜像烧写 第一步:裸板可使用串口先烧录boot(速度慢) 第二步:已烧好boot的板子,可使用USB快速烧录 海思入门笔记:HiBurn工具实现 ...

  7. Golang 入门笔记(二)下

    目录 文章目录 目录 修改字符串 连接字符串 格式化 格式表 BASE64编码 常量 枚举--一组常量值 类型别名与类型定义 非本地类型不能定义方法 在结构体成员嵌入时使用别名 紧接上文 修改字符串 ...

  8. Golang 入门笔记(二)上

    目录 文章目录 目录 Go 语言基本语法与使用 2.1 变量 2.1.1 声明变量 2.1.2 初始化变量 2.1.3 多个变量同时赋值 2.1.4 匿名变量---没有名字的变量 2.2 数据类型 整 ...

  9. 【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记(二)

    你好,我是阿ken?? 版权声明:本文为CSDN博主「」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 另外,博文中某些图片或内容可能出自网络,如有侵权或问题,请及 ...

最新文章

  1. 51Nod-1082 与7无关的数【进制+打表】
  2. spark SQL读取ORC文件从Driver启动到开始执行Task(或stage)间隔时间太长(计算Partition时间太长)且产出orc单个文件中stripe个数太多问题解决方案...
  3. B2C和B2B之间有多大差距
  4. html中文段落,HTML 段落-JavaScript中文网-JavaScript教程资源分享门户
  5. 相同类方法之间调用,注解失效的问题
  6. CS224n学习笔记1-nlp介绍和词向量
  7. python中加等是什么意思_Python创建类的时候,加()和不加有什么区别、联系?
  8. 计算机的配置以及简单的操作
  9. update语句修改报错问题处理
  10. 如何在Windows 10中启用关闭事件跟踪程序
  11. Linux Command - alien
  12. 在内核中实现URL重定向
  13. 代码自动生成:Github Copilot
  14. android手势第一次设置密码_Android实现手势密码功能
  15. ODB 入门介绍(一)
  16. js下载视频(mp4格式)
  17. 前端面试之----跨域解决方案之一(CORS)
  18. namespace MyProject 买来的二手车怎么查询是否发生过违章或交通事故,要查二手车的维修保养记录和出险记录?
  19. 计算机网络拓扑有,计算机网络拓扑
  20. 【19周-星耀】FASTER!FASTER!FASTER!

热门文章

  1. Everyday English: Socialising (formal) 吃formal用语
  2. 逆向工程(Reverse Engineering)
  3. 人和计算机在时间管理方面的相似性
  4. where is lingang city in shanghai?
  5. 什么是时间管理,一个大四学生的简单理解
  6. 《人潮汹涌》的观后感
  7. 理解oracle的共享连接和专用连接
  8. 网络运维现状及发展趋势分析
  9. 《Adobe Dreamweaver CC经典教程》——导读
  10. Hudson:持续集成工具的安装、使用