变量

概念:程序的基本组成单位

定义:

  • 指定变量类型
  • 根据值自行判断变量类型(类型推导)
  • 省略var,定义赋值
    var i int
var i = 10
i, j := 20, 10

数据基本类型

基本数据类型:数值型、字符型、布尔型、字符串
派生数据类型:指针、数组、结构体、管道、函数、切片、接口、map



注意点

  • 如果变量没有赋值,会初始化值,int为0,string为空字符串
  • 程序中的加法,如果两值为数值类型,则做加法,反之为字符串类型,则做字符拼接
  • 非同类型数值不能相加,比如1,1.2
  • 定义字符变量要用双引号

整型

  • 整数区分有符号、无符号,int,uint的大小和系统有关
  • golang的整数默认声明为int型
  • unsafe.Sizeof(n2),查看变量字节大小和数据类型
  • 尽量使用占用空间小的数据类型
  • bit:计算机中最小存储单位
  • byte:计算机中最基本的存储单元 1byte = 8bit





浮点型

  • 浮点型都是有符号的
  • 尾数部分可能会丢失,造成精度丢失(-111.1234567)
  • float64要比float32更精确
  • 浮点型有固定的范围和字段长度,不受系统影响
  • 浮点型常量有2中表现方式(十进制形式:1.22|.22必须有小数点。科学计数法:5.1234e2=5.12*10的2次方|5.12E-1:5.12/10的2次方)

字符类型

  • golang中没有特意的字符类型,如果想存储单个字符,一般用byte来存储,传统的字符串是由字符组成,而go是由字节byte组成
  • 如果我们保存的字符在ASCII表中,可以只用byte
  • 如果我们的字符对应码值大于255,考虑用int来保存
  • 如果需要按照我们输入的格式输出,需要格式话%c
  • 字符串常量用‘’单引号括起来
  • 字符的本质是数字,输出是,是该字符串utf8的码值
  • 给变量赋值一个数字,按格式输出,会输出该数字对应的unicode字符
  • 字符类型是可以运算的,整数+字符,会将字符转换成码值计算(实际运用:比如给定一个字母a,输出字母表)
  • byte存储ascii码中的值,单个字符使用int单引号('北'),多个字符用string双引号("北京")
字符串本质
  • 存储:字符-对应码值-二进制-存储
  • 读取:二进制-码值-字符-读取
  • 字符和码值的对应关系是通过字符编码表来决定的

布尔类型

  • 布尔值只有true和false
  • 只占一个字节
  • 主要运用于逻辑运算

string类型

  • 字符串就是由一串固定长度的字符拼接起来的字符序列
  • 字符串一旦赋值,不可更改
  • 字符串双引号会识别转义字符
  • 字符串反引号原生格式输出,可以防止攻击、输入源代码等
  • 一行拼接字符串太长,+号必须写在上一行
  • 反引号原格式输出``

数据类型基本转换

  • (数值转换)转换可以从范围小到范围大,也可以从范围大到范围小[tv规则 比如float64(123456)]
  • (数值转换)从范围大到范围小,编译不会报错,只是转换的结果按照溢出处理
  • (任何类型-string)1、Sprintf 2.strconv.fommat 3.strconv.Itoa(int转 string,必须是int类型)
  • (string—任意类型)strconv.Parse

指针

  • 基本数据类型,存储的是值,也叫值类型
  • 获取变量的地址用&i
  • 获取指针变量的值*i
  • 值类型包括:int、float、bool、string、数组、结构体struct
  • 引用类型:指针、slice切片、map、管道chan、interface
  • 值类型内存通常在栈中分配
  • 引用类型通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就会成为一个垃圾,由gc来回收

标识符

命名规范
  • 由26个英文字母大小写、0-9,‘_’组成
  • 数字不可以开头
  • 严禁区分大小写
  • 不能包含空格
  • 下划线_本身就是个特殊的标识符,返回的值会被忽略
  • 不能以系统保留关键字作为标识符(if、break)
  • 变量名采用驼峰
  • 变量名、函数名、常量如果首字母大写,可以被其他类使用,如果小写,只能在本类中使用

day2-变量与数据类型的更多相关文章

  1. [C语言入门笔记]变量与数据类型

    变量与数据类型 什么是变量? 变量是一个变化的量 是内存中的一个空间 变量的定义方法是什么? 数据类型 变量名 = 值; 数据类型有哪些? 整型int 浮点型float double 字符型char ...

  2. JS魔法堂:函数重载 之 获取变量的数据类型

    Brief 有时我们需要根据入参的数据类型来决定调用哪个函数实现,就是说所谓的函数重载(function overloading).因为JS没有内置函数重载的特性,正好给机会我们思考和实现一套这样的机 ...

  3. Python变量、数据类型6

    1.Python变量 变量,即代表某个value的名字. 变量的值存储在内存中,这意味着在创建变量时会在内存中开辟一个空间. !!!即值并没有保存在变量中,它们保存在计算机内存的深处,被变量引用.所以 ...

  4. JS代码放置位置、变量与数据类型、运算符与逻辑表达运算符

    内容简要: 1.JS代码放置位置的问题: 2.变量与数据类型: 3.运算符与逻辑表达式的运算符   我的位置 全局问题:为何在网页推荐位置(一般在<head></head>内部 ...

  5. C#变量与数据类型

    数据类型: 整型:int short long byte 小数:double float decimal 布尔:bool 字符:char 定义变量: 数据类型 变量名 [= 值]; 变量名的命名规则: ...

  6. isa class 帮助确定对象或变量的数据类型

    isa class 帮助确定对象或变量的数据类型

  7. Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换

    1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...

  8. 《JavaScript 闯关记》之变量和数据类型

    当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量,值的类型称作数据类型. 变量 JavaScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据.换句话说,每个变量仅仅是 ...

  9. php什么是变量的数据类型

    什么是变量的数据类型 在变量中,由于变量占用的空间单元不一样(占的地盘大小不一样),也分成几种数据类型,就像超市商品的包装袋,有几种不同类型,不同的商品使用不同的包装袋.我们可以通过使用“memory ...

  10. type,isinstance判断一个变量的数据类型

    type,isinstance判断一个变量的数据类型 import types type(x) is types.IntType # 判断是否int 类型 type(x) is types.Strin ...

随机推荐

  1. 中电金信召开“源启 AI+”人工智能应用场景与发展培训暨业务研讨会

    近年来,国务院国资委把加快发展人工智能放在国资央企全局工作中统筹谋划,作为产业焕新行动和启航行动部署的主要方向,制定印发行动计划,组织召开中央企业人工智能专题推进会,开展"AI+" ...

  2. 【Docker】安装镜像报错warning: /var/cache/yum/x86_64/7/extras/packages/epel-release-7-11.noarch.rpm: Header

    这个的解决方法就是加上这个就可以了

  3. Qt音视频开发02-海康sdk解码(支持句柄/回调/gpu模式/支持win/linux)

    一.前言 为何还要选用使用海康sdk,之前不是ffmpeg已经牛皮吹上天了吗?这个问题问得好,那是因为无论ffmpeg也好还是vlc/mpv之类的,都是实现的播放相关,不同的监控硬件厂家对应设备还有很 ...

  4. IntelliJ IDEA安装与配置(支持最新2020.2)

    前言 我是从eclipse转IDEA的,对于习惯了eclipse快捷键的我来说,转IDEA开始很不习惯,IDEA快捷键多,组合多,记不住,虽然可以设置使用eclipse的快捷键,但是总感觉怪怪的.开始 ...

  5. ThreeJs-09精通粒子特效

    一.初识points与点材质 什么叫做点材质,之前说过所有物体都是有定点的比如一个球体,并且将材质设置为线框模式,这个之前就说过所有mesh物体都是由三角形构成,都是有顶点的 我们也可以创建点物体,电 ...

  6. 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v7.0版已发布

    关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持 UDP .TCP .WebSocket 三种协议,支持 iOS ...

  7. 内华达大地测量实验室GNSS数据tenv3格式下载

    GNSS时序形变位移数据下载 引言 下载方式 注意事项 引言 目的:教大家如何下载GNSS时序形变位移数据,本人主要是利用GNSS位移结果进行InSAR相关成果的精度验证工作.若大家需要在自己的研究领 ...

  8. 1. C++快速入门--变量和基本类型, 类别

    文章使用obsidian编写, 双链部分可能失效 1 基本内置类型 1.1 算术类型 算术类型介绍 bool 类型 字符类型 整数类型 实数浮点.虚数浮点和 复数浮点 参看如下表 带符号和无符号类型的 ...

  9. Windows安全加固(四)

    七.服务安全 1.禁用TCP/IP上的NetBIOS(协议所用端口139) 作用:禁用TCP/IP上的NetBIOS协议,可以关闭监听的UDP137.UDP138.UDP139端口. (1)使用快捷键 ...

  10. 如何快速的开发一个完整的iOS直播app(推流篇)

    开发一款直播app,肯定需要流媒体服务器,本篇主要讲解直播中流媒体服务器搭建,并且讲解了如何利用FFMPEG编码和推流,并且介绍了FFMPEG常见命令. 效果 一.安装Homebrew Homebre ...