变量与常量

变量声明

  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
    )

最新文章

  1. java第六次作业
  2. Tyvj 题目1463 智商问题(分块)
  3. 创建与合并分支-git入门教程
  4. MD5加密(16/32)
  5. [转载] C++ STL string的Copy-On-Write技术
  6. 【BZOJ 1013】 [JSOI2008]球形空间产生器sphere
  7. 8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句
  8. Fedora 下安装codeblocks
  9. 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据
  10. [Swift]LeetCode263. 丑数 | Ugly Number
  11. Android 异步框架 RxJava2
  12. Traceur
  13. Java8 in action
  14. 独家 | 蚂蚁金服TRaaS技术风险防控平台解密
  15. Python编程工具pycharm的使用
  16. 解决 Class not found和Base table or view not found: 1051 问题
  17. HTML5中的本地、WebSql、离线应用存储
  18. C#关于排程举一个小例子
  19. registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped.
  20. [原]零基础学习视频解码之安装ffmpeg

热门文章

  1. Integer使用==做判断遇到的问题
  2. shell脚本监测进程并重启
  3. 企业应用开发的大趋势,65%的应用开发将通过低代码完成 ZT
  4. USB-Blaster CPLD FPGA Intel 驱动安装不上的问题,文件的哈希值不在指定的目录文件中,的解决办法,其实很简单
  5. Linux-redis安装以及客户端搭建
  6. 如何在Mac电脑上隐藏视频文件?
  7. HTML连载65-过渡模块的基本使用
  8. mysql数据库环境配置及部分问题
  9. Android 开发调试最优选项
  10. 【巨杉数据库SequoiaDB】巨杉数据库无人值守智能自动化测试实践