常量与运算符

常量的定义

  • 常量的值在编译时已经确定

  • 常量的定义格式与变量的基本相同

  • 等号的右侧必须是常量或者常量表达式

  • 规范: 常量定义时建议都使用大写,单词之间使用大写

    • 便于包的外部调用

    • 如果只限于包内部使用在常量开头使用_或者使用小写c

      //常量赋值
      package main import "fmt"
      const a int = 1 //常规写法:声明类型
      const b = 'A' //自动判断类型
      const(
      c = a
      d = a + 1
      e = a + 2
      ) const ( //常量组定义方法2
      a2, b2, c2 = 1, "2", "c"
      )
      const a3, b3, c3 = 1, "2", "c" //简单写法,多个定义
      const ( //常量组特性:如果常量没有赋值,下面默认使用了之前的常量表达式
      a4 = 1
      b4
      c4
      d4
      ) func main() {
      fmt.Println(a4)
      fmt.Println(b4)
      fmt.Println(c4)
      fmt.Println(d4)
      } /*output
      1
      1
      1
      1
      */

常量与全局变量的区别

  • 常量表达式里面必须使用常量表达式的变量和内置函数,不能使用运行时才能获得的变量和值

    package main
    
    import "fmt"
    
    var sss = 123
    const (
    //a = len(sss) //这种写法是错误的,无法使用全局变量
    b = "123"
    c = len(b)
    d,f = 1,"abc"
    j //这种方式也是错误的,初始化的个数必须相同
    ) func main() {
    //fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)
    fmt.Println(d)
    } /*output
    123
    3
    3
    */

枚举结合常量组使用,用于计数

  • 常量组中每定义一个常量,计数就递增1,第一个常量默认为0

  • 当组中常量出现关键字iota时,说明此时需要使用该组常量的计数

    //常量&枚举(计数)
    package main import "fmt" const (
    B1 = "ssss"
    A = "a"
    B = iota
    E
    F = iota
    ) func main() {
    fmt.Println(B1)
    fmt.Println(A)
    fmt.Println(B)
    fmt.Println(E)
    fmt.Println(F)
    } /*output
    ssss //iota =0
    a //iota=1
    2 //iota =2
    3
    4
    */

运算符

  • go中运算符均时从左到右
小练习:尝试结合常量的iota<<运算符实现计算机储存单位的枚举***
  • expt:

     /*实现计算机储存单位常量的枚举
    */
    package main import "fmt"
    const (
    B float64 = 1 << (iota * 10) //此时iota =0 ,KB
    KB // 此时计数为1,MB
    MB // iota为2
    GB
    TB
    PB
    ) func main() {
    fmt.Println(B)
    fmt.Println(KB)
    fmt.Println(MB)
    fmt.Println(TB)
    fmt.Println(PB)
    } /*output
    1
    1024
    1.048576e+06
    1.099511627776e+12
    1.125899906842624e+15
    */

golang基础--常量与运算符的更多相关文章

  1. Golang 基础之基础语法梳理 (一)

    大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第一章节 Golang 基础之基础语法梳理 (一) Gol ...

  2. Golang基础教程

    以下使用goland的IDE演示,包含总计的golang基础功能共20个章节 一.go语言结构: 二.go基础语法: 三.变量 四.常量 五.运算符 六.条件语句 七.循环 八.函数 九.变量作用域 ...

  3. GoLang基础数据类型--->数组(array)详解

    GoLang基础数据类型--->数组(array)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Golang数组简介 数组是Go语言编程中最常用的数据结构之一.顾名 ...

  4. Golang 基础之基础语法梳理 (二)

    大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第二章节 Golang 基础之基础语法梳理 (一) Gol ...

  5. 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句

    [源码下载] 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句 作者:webabcd 介绍速战速决 之 PHP 概述 常量 变量 运算符 表达式 控制语句 示例1. ...

  6. golang基础知识之encoding/json package

    golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...

  7. c++ --> 变量、常量与运算符

    变量.常量与运算符   一.什么是变量?    在计算机的内存中, 内存被划分为一个一个的内存单元, 每个内存单元有自己的编号, 而变量就是对某一段连续内存单元使用一些更容易记忆.更容易区分的字符组合 ...

  8. Golang基础之函数

    golang基础之函数 1.为什么需要函数? 有些相同的代码可能出现多次,如果不进行封装,那么多次写入到程序中,会造成程序冗余,并且可读性降低 2.什么是函数 为完成某些特定功能的程序指令集合称为函数 ...

  9. GoLang基础数据类型--->字典(map)详解

    GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是 ...

随机推荐

  1. 取Mac地址

    uses Nb30; //一般用默认的 0 就可以了 ):string; var ncb : TNCB; {NetBios控制块} AdapterS : TAdapterStatus; {网卡状态结构 ...

  2. 高并发Web

    hadoop适合处理分布式集群系统,本身是支持高速并发海量数据的写入和读取的.解决大量用户并发访问的方案有很多,给你个千万pv的参考方案:1)架构中直接引入软件名称的模块,是个人推荐使用的,如Hapr ...

  3. LoadRunner 技巧之 IP欺骗 (推荐)

    IP欺骗也是也loadrunner自带的一个非常有用的功能. 需要使用ip欺骗的原因:1.当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量, ...

  4. The transaction associated with this command is not the connection's active transaction

    The fix is fairly simple: if you want a Dapper query to participate in a connection, explicitly deno ...

  5. go语言最快最好运用最广的web框架比较(大多数人不了解的特性)

    令人敬畏的Web框架 如果你为自己设计一个小应用程序,你可能不需要一个Web框架,但如果你正在进行生产,那么你肯定需要一个,一个好的应用程序. 虽然您认为自己拥有必要的知识和经验,但您是否愿意自行编写 ...

  6. C# 下载文件 删除文件 写入文本

    由于经常用到文件处理,便自己封装了下 分享给大家. 包含写入文本  批量删除文件  下载文件 .--可直接使用 /// <summary> /// 写入到txt /// </summ ...

  7. VS2017常用快捷键整理

    项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示 Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添 ...

  8. mysql恢复备份错误:Got a packet bigger than 'max_allowed_packet' bytes

    最近恢复mysql数据库备份时,出现了一个错误:Got a packet bigger than 'max_allowed_packet' bytes 该问题主要是由于mysql的my.ini文件中设 ...

  9. 【ZOJ2314】Reactor Cooling(有上下界的网络流)

    前言 话说有上下界的网络流好像全机房就我一个人会手动滑稽,当然这是不可能的 Solution 其实这道题目就是一道板子题,主要讲解一下怎么做无源无汇的上下界最大流: 算法步骤 1.将每条边转换成0~u ...

  10. 【转】Java并发编程:线程池的使用

    Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了, ...