变量与常量

变量声明

  1. 定义变量时指定变量类型式

  2. 定义变量时依靠类型推断

    go是静态,强类型语言(java,c++也是如此)。

    静态语言: 在编译时就能确定变量类型的语言,类型推导在编译阶段可以不用指明类型

    动态语言: 在运行阶段才能确定变量类型的语言

    强类型语言: 一旦确定类型,运行时就不能改变,即使强制转换也不能改变原始变量类型

    弱类型: 运行是能根据上下文隐式的转换数据类型

  3. 简短声明 左边的变量名至少有一个是新的,不能定义全局变量

    1. 左边的变量名至少有一个是新的

    2. 不能定义全局变量

      全局变量:定义在函数外部的变量

  4. 多变量声明

    var a,b,c int = 1,2,3
    var a,b,c = 1,2,3 //变量组
    var(
    name = ""
    age = 23
    sex = ""
    )
  5. 零值

    1. 空判断 a == nil
    2. int 0 float 0.0 string ""
    3. 切片是引用类型,零值是nil
  6. 变量定义了必须使用,否则报错

常量的声明

  1. 定义方式

    1. 显式类型定义:

      const B string = "hello"
    2. 隐式类型定义:使用类型推断

      const B = "hello"

      使用情况:常量定义后可以不使用,不会报错

    3. 多常量声明

      //常量组
      const(
      P1 = "hello"
      P2 = "golang"
      )
    4. 一个常量如果没有初始值,则默认与上一行的常量值一致

  2. 枚举类型

    使用常量组作为枚举类型,一组相关数值的数据。

    const (
    SPRING = 1
    SUMMER = 2
    AUTUMN = 3
    WINTER = 4
    )
  3. 注意事项

    1. 常量的数据类型只能是:布尔型,数字型(整数型,浮点型,复数),字符型
    2. 不曾使用的常量,不会报错
    3. 显式指定数据类型时,必须确保常量值与类型一致,需要时可做显式转换。

iota常量

  1. 定义:

    特殊常量,可以认为是一个被编译器修改的常量

    理解:iota是相对const而言的,每创建一个const就会有一个iota,初始值是0,每当定义一个常量它的值就自增1,直到下一个const出现并清零。

    const (
    SPRING = iota //iota == 0
    SUMMER //iota == 1
    AUTUMN = "haha" // haha iota仍然会自增1 iota == 3
    WINTER //haha iota仍然会自增1 iota == 4
    SPRING2 = iota //iota == 4
    SUMMER2 //iota == 5
    AUTUMN2 //iota == 6
    WINTER2 //iota == 7
    )

Go变量与常量的更多相关文章

  1. Java程序,基本数据类型、、数据类型转换、变量和常量、常用运算符

    一.基本数据类型 整数类型:byte.short. int(常用).long(较常用)     定义某个变量          int  a=10: 浮点类型(小数):float.double(常用) ...

  2. PHP中的变量与常量详解

    几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...

  3. Java 静态变量,常量和方法

    static 关键字 例如:在球类中使用PI这个常量,可能除了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量.这时没有必要 在两个类中同时创建PI这个常量,因为这样系统会将这两个不在同一个类 ...

  4. [.net 面向对象编程基础] (5) 基础中的基础——变量和常量

    [.net面向对象编程基础]  (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...

  5. iOS开发Swift篇—(二)变量和常量

    iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...

  6. php标记,变量,常量

    php标记 语法:有4种书写格式 1.<?php ... ?>  强烈推荐使用. 如果当前 php的代码段,是整个文档的最后一段,可以省略结束标记?(建议省略) 每句语句都要以分号;结束. ...

  7. Swift学习笔记--变量与常量

    1.Swift是一门强类型语言,不能为变量赋予其自身数据类型之外的值: 2.声明变量使用var关键字,声明常量使用let关键字: 3.声明变量或常量时没有对其指定类型且赋予了初值,则编译器会自动推断常 ...

  8. Oracle基础 PL-SQL编程基础(1) 变量和常量

    一.什么是PL-SQL PL-SQL是结合了Oracle过程语言和结构化查询语言(SQL)的一种扩展语言.具体来说,PL-SQL就是在普通的SQL语句的基础上增加了编程语言的特点,将数据操作和查询语句 ...

  9. 李洪强iOS开发Swift篇—02_变量和常量

    李洪强iOS开发Swift篇—02_变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3. ...

  10. C语言基础学习基本数据类型-变量和常量

    变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...

随机推荐

  1. Docker 安装 ELK

    安装 首先安装 Docker 与 Docker-Compose 相关的组件,我们这里直接使用准备好的 ELK 镜像,执行以下命令从 Dockerhub 上拉取指定版本的镜像,在本例当中我使用的是 7. ...

  2. JVM第二篇 类加载子系统

    1.内存结构概述 简图 ​ 详细 ​ ​ ​ 2.类加载器与类加载的过程 ​ 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识[CA FE BA BY ...

  3. Linux /etc/network/interfaces

    Linux下/etc/network/interfaces文件用来配置网络接口. 1. 使用动态IP地址 auto eth0 iface eth0 inet dhcp 2. 使用静态IP地址 auto ...

  4. 基于java开发jsp+ssm+mysql实现的在线考试系统 源码下载

    实现的关于在线考试的功能有:用户前台:用户注册登录.查看考试信息.进行考试.查看考试成绩.查看历史考试记录.回顾已考试卷.修改密码.修改个人信息等,后台管理功能(脚手架功能不在这里列出),科目专业管理 ...

  5. java设计模式学习笔记--接口隔离原则

    接口隔离原则简述 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应建立在最小的接口上 应用场景 如下UML图 类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类 ...

  6. ECMAScript 6基础

    ECMAScript 和 JavaScript 是什么关系? 1996 年 11 月,JavaScript 的创造者 Netscape 公司,希望JavaScript能够成为国际标准,将其提交给标准化 ...

  7. Essential C++ 笔记-1

    本文作者为C++初学者,学习之中难免有误,该文章仅为参考 面向对象概述 继承:改变类之间的关系 多态:让基类的pointer或refence得以十分透明的指向基类的某个派生对象 继承 继承发生在对象与 ...

  8. 剑指offer-面试题32-之字形打印二叉树-二叉树栈

    /* 题目: 分行按层自上向下呈之字形打印二叉树.第一行从左到右,第二行从右到左,第三行从左到右... */ /* 思路: 使用两个栈stack1和stack2. stack1存储从左向右打印的节点, ...

  9. LeetCode 867. 转置矩阵

    题目链接:https://leetcode-cn.com/problems/transpose-matrix/ 给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵 ...

  10. Wannafly Winter Camp 2020 Day 7A 序列 - 树状数组

    给定一个全排列,对于它的每一个子序列 \(s[1..p]\),对于每一个 \(i \in [1,p-1]\),给 \(s[i],s[i+1]\) 间的每一个值对应的桶 \(+1\),求最终每个桶的值. ...