【Go语言】Golang保姆级入门教程 Go初学者chapter2

news/2024/11/15 0:56:12/

【Go语言】变量

VSCode插件

setting的首选项

一个程序就是一个世界 变量是程序的基本组成单位

变量的使用步骤

image-20230726152840172

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zuxG8imp-1691479164956)(https://cdn.staticaly.com/gh/hudiework/img@main/image-20230726152905139.png)]

变量使用的注意事项

  1. 变量表示内存中的一个存储区

    Golang变量使用的三种方式
    1) 指定变量类型,申明后如果不赋值,使用默认值
    2)根据值自行判断变量类型(类型推导)
    3)省略var := 左侧的变量不应该是声明过得 否则会导致编译错误
    

注意: := 这种方式仅支持局部变量

var太麻烦了 var( XXX)全局变量

  1. 该区域的数据值可以在同一类型范围内不断变化
  2. 变量同一作用域不能重名
  3. 变量 = 变量名 + 值 + 数据类型
  4. Golang变量无初值 会有默认值

字符串做加法运算 是拼接

image-20230726162335576

整数的使用细节

fmt.Printf

image-20230727151305772

image-20230727151443656

Golang整型变量保小不保大的原则 保证程序正确运行下 尽量使用占用空间小的数据类型

小数浮点型

image-20230727152801339

image-20230727152835113

尾数部分有可能丢失 这样的话会造成精度损失

image-20230727153300566

Golang的浮点型默认声明为float64 类型

image-20230727154332878

科学计数法小写的e 和大写的E是相同的一种表示 通常情况下应该使用float64 因为它比float32 更精确

开发中常用的数据类型是float64

字符类型

byte 0-255 字符串就是遗传固定长度的字符连接起来的字符序列

Golang中反引号 可以输出 一长串变量

image-20230730143914456

如果一个字符串特别长的话 可以直接将加号 放在一句话的后面 下一行在加字符串

零值 默认是false “”

image-20230803131807262

image-20230803131831523

数据转换

Go和java\C不同 因为Go在不同的类型需要显示转换

image-20230803133544694

不管是低精度 朝向高精度 还是高精度朝向低精度 都是一样需要数据转换的 也就是说 Go语言里面全部都是强制转换

注意: 被转换的变量修改之后 转换的是变量的值 并不是原来的对象 可以通过%T 输出原来对象的类型确认只更改变量的值

转换的时候溢出的话 输出的值按照截取的二进制处理

超越变量本身的编译范围 会直接报错 但是如果未超过变量本身的编译范围 编译不报错 但是运行的话是溢出的

如果没用到import里面的包 那么可以使用_ 忽略掉他

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bJgcWkd4-1691479164958)(https://cdn.staticaly.com/gh/hudiework/img@main/image-20230803145123188.png)]

image-20230804115533139

基本数据类型 转换成字符串是直接输出类型格式变为%q 即可

image-20230805093236779

String 转换到基本类型:

Go语言在转换的时候都会使用函数

使用 strconv.ParseInt等方法

image-20230805093409239

image-20230805093813228

image-20230805094333062

image-20230808151022148

image-20230808151403281

image-20230808151544956


http://www.ppmy.cn/news/1014949.html

相关文章

备忘录模式(C++)

定义 在不破坏封装性的前提下,捕获一-个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 应用场景 ➢在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要…

关于nvcc fatal : Value ‘sm_20‘ is not defined for option ‘gpu-architecture‘错误

最近在学习CUDA,看着CUDA C教程 使用nvcc进行编译文件出现这个问题。 运行代码: nvcc -arch sm_20 cudatest.cu -o hello错误: nvcc fatal : Value sm_20 is not defined for option gpu-architecture解决: 教程使用的架构较…

openEuler加载本地yum源

挂载iso文件到mnt mount /data/download/openEuler-22.03-LTS-x86_64-dvd.iso /mnt/修改/etc/yum.repos.d/openEuler.repo [Local] namelocal baseurlfile:///mnt enabled1 gpgcheck1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-openEuler3.更新yum源信息 yum clean all yu…

JavaWeb 速通Cookie

目录 一、关于base标签 1.引入 : 2.介绍 : 3.实例 : 4.细节 : 二、Cookie的引入 1.会话技术 : 1 什么是会话技术? 2 会话技术用于解决什么问题? 2.Cookie介绍 1 Cookie有什么用? 2 Cookie通讯机制 三、Cookie的基本使用 1.创建Cookie…

马氏杆法检查斜视

使用 检查水平向斜视时,使用水平向马氏杆检查;重直向斜视时,使用重直问马氏杆;检查旋转斜视时,使用双马氏杆. 检查水平向斜视 双眼屈光不正全矫 双眼同时打开,右眼前加水平向马氏杆,左眼前不加 双眼同时观察点光源&…

CS录屏教程,录制游戏需要注意哪些方面?

​最近有个CS手游的玩家小伙伴咨询想要做一些游戏视频录制,但是不知道有哪些好用的工具来使用,对于游戏录制我们其实是需要注意一些事项的,想要观众的观感上比较好就需要把握好视频的帧率等问题,下面我们就来看看录制方法和需要注…

Mac M2 Ventura(13.3) 新机 安装Cocoapods

1.执行命令: sudo gem install cocoapods 因为是新机,内置的ruby版本是(2.6.0)太低,会报错 所以需要安装新的ruby版本 2.如果已经安装了低版本的homebrew,可以先卸载: 卸载: /b…

算法通过村第二关-链表黄金笔记|K个一组反转

文章目录 前言链表反转|K个一组翻转链表解题方法:头插法处理:穿针引线法处理: 总结 前言 提示:没有人天生就喜欢一种气味而讨厌另一种气味。文明的暗示而已。 链表反转|K个一组翻转链表 给你链表的头节点 head ,每 k…