GO编程基础之二

1.常量的定义

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

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

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

--常量表达式中函数必须是内置函数

 

const(
    PI = 3.14
    SI = 1.15
    CI = "test"
)
const a int = 1
const b = 'A'   //变量类型省略编译器自动判断
const c,d,e = 1,"2","A"

 

2.常量的初始化规则与枚举

--在定义常量组时,如果不提供初始化值,则表示将使用上行的表达式

const(
    f = 1
    r
    K
    
)
//上述代码,输出f,r,K都是等于1

--常量的初始化必须是常量:编译器在编译的过程中,因为ss为全局变量,是在程序运行的过程中计算的,在编译的时候并没有对它进行一个出来,所以在编译的时候这个len(ss)就是缺失的值;len函数是内置的函数

const(
    p,m = 1,2
    v,j
)

//这样输出的常量v,j,就是1,2
//如果是这样
const(
    p,m = 1,2
    v
)
//编译是不通过的,因为初始化规则的使用,每一行声明的常量的个数必须是一致的

--使用相同的表达式不代表具有相同的值

--枚举:iota是常量的计数器,从0开始,常量组中每定义1个常量自动增加1,通过初始化规则与iota可以达到枚举的效果

--每遇到一个const关键字,iota就会置为0

--想要使用枚举,必须在常量组中使用

const(
    a = "A"
    b 
    c = iota
    d
)

//上述输出a,b,c,d分别是:A A 2 3
//常量组中第一个常量的iota值是0,iota值只与常量声明的顺序有关
//常量的命名规则一般都是大写字母+下划线:MAX_NUM,最好常量是全部大写字母,不要有小写
//首字母大写就会被包的外部使用到

 

3.运算符:从左至右结合,操作数和运算符的结合

优先级:(从高到底)
--^   !               (一元运算符)

--*   /     %   <<       >>   &   &^

--+    -     |       ^                 (二元运算符)

--  ==     !=   <    <=   >=    >         

--   <-                  (专用于channel,并发)

--   &&   //如果第一个条件都不满足,就直接跳过了代码块

--    ||

左移和右移:1代表B,左移10位变为KB,再左移10位的话就变成MB

 

和运算符:&        两个都是1的话,运算就是1;如果有一个不是1,运算就是0 ;(条件比较苛刻)

或运算符: |         如果有一个是1,那么它就成立了 ,运算就是1(条件不那么苛刻)

                   ^         在对比过程中,两位只有一个是1,它才可以成立,运算才得1

                  &^        如果在第二个数上的第一位是1,就把第一个数中的第一位改为0;如果第二个数上的数字是0,就不对第一个数上对应位做任何操作

 

4.

posted @ 2018-11-11 15:20  小春熙子  阅读(153)  评论(0编辑  收藏  举报