您现在的位置是:首页 > 网站制作 > gogo

Go 语言常量

胜于蓝2013-12-30【go】人已围观

简介常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。常量的定义格式:const identifier [type]

常量是一个简单值的标识符,在程序运行时,不会被修改的量。YK2胜于蓝|优秀个人博客

常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。YK2胜于蓝|优秀个人博客

常量的定义格式:YK2胜于蓝|优秀个人博客

const identifier [type] = value

你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。YK2胜于蓝|优秀个人博客

  • 显式类型定义: const b string = "abc"
  • 隐式类型定义: const b = "abc"

多个相同类型的声明可以简写为:YK2胜于蓝|优秀个人博客

const c_name1, c_name2 = value1, value2

以下实例演示了常量的应用:YK2胜于蓝|优秀个人博客

实例

package mainYK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
import "fmt"YK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
func main() {YK2胜于蓝|优秀个人博客
   const LENGTH int = 10YK2胜于蓝|优秀个人博客
   const WIDTH int = 5   YK2胜于蓝|优秀个人博客
   var area intYK2胜于蓝|优秀个人博客
   const a, b, c = 1, false, "str" //多重赋值YK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
   area = LENGTH * WIDTHYK2胜于蓝|优秀个人博客
   fmt.Printf("面积为 : %d", area)YK2胜于蓝|优秀个人博客
   println()YK2胜于蓝|优秀个人博客
   println(a, b, c)   YK2胜于蓝|优秀个人博客
}

以上实例运行结果为:YK2胜于蓝|优秀个人博客

面积为 : 50
1 false str

常量还可以用作枚举:YK2胜于蓝|优秀个人博客

const (
    Unknown = 0
    Female = 1
    Male = 2
)

数字 0、1 和 2 分别代表未知性别、女性和男性。YK2胜于蓝|优秀个人博客

常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过:YK2胜于蓝|优秀个人博客

实例

package mainYK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
import "unsafe"YK2胜于蓝|优秀个人博客
const (YK2胜于蓝|优秀个人博客
    a = "abc"YK2胜于蓝|优秀个人博客
    b = len(a)YK2胜于蓝|优秀个人博客
    c = unsafe.Sizeof(a)YK2胜于蓝|优秀个人博客
)YK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
func main(){YK2胜于蓝|优秀个人博客
    println(a, b, c)YK2胜于蓝|优秀个人博客
}

以上实例运行结果为:YK2胜于蓝|优秀个人博客

abc 3 16

iota

iota,特殊常量,可以认为是一个可以被编译器修改的常量。YK2胜于蓝|优秀个人博客

iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。YK2胜于蓝|优秀个人博客

iota 可以被用作枚举值:YK2胜于蓝|优秀个人博客

const (
    a = iota
    b = iota
    c = iota
)

第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2 可以简写为如下形式:YK2胜于蓝|优秀个人博客

const (
    a = iota
    b
    c
)

iota 用法

实例

package mainYK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
import "fmt"YK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
func main() {YK2胜于蓝|优秀个人博客
    const (YK2胜于蓝|优秀个人博客
            a = iota   //0YK2胜于蓝|优秀个人博客
            b          //1YK2胜于蓝|优秀个人博客
            c          //2YK2胜于蓝|优秀个人博客
            d = "ha"   //独立值,iota += 1YK2胜于蓝|优秀个人博客
            e          //"ha"   iota += 1YK2胜于蓝|优秀个人博客
            f = 100    //iota +=1YK2胜于蓝|优秀个人博客
            g          //100  iota +=1YK2胜于蓝|优秀个人博客
            h = iota   //7,恢复计数YK2胜于蓝|优秀个人博客
            i          //8YK2胜于蓝|优秀个人博客
    )YK2胜于蓝|优秀个人博客
    fmt.Println(a,b,c,d,e,f,g,h,i)YK2胜于蓝|优秀个人博客
}

以上实例运行结果为:YK2胜于蓝|优秀个人博客

0 1 2 ha ha 100 100 7 8

再看个有趣的的 iota 实例:YK2胜于蓝|优秀个人博客

实例

package mainYK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
import "fmt"YK2胜于蓝|优秀个人博客
const (YK2胜于蓝|优秀个人博客
    i=1<<iotaYK2胜于蓝|优秀个人博客
    j=3<<iotaYK2胜于蓝|优秀个人博客
    kYK2胜于蓝|优秀个人博客
    lYK2胜于蓝|优秀个人博客
)YK2胜于蓝|优秀个人博客
YK2胜于蓝|优秀个人博客
func main() {YK2胜于蓝|优秀个人博客
    fmt.Println("i=",i)YK2胜于蓝|优秀个人博客
    fmt.Println("j=",j)YK2胜于蓝|优秀个人博客
    fmt.Println("k=",k)YK2胜于蓝|优秀个人博客
    fmt.Println("l=",l)YK2胜于蓝|优秀个人博客
}

以上实例运行结果为:YK2胜于蓝|优秀个人博客

i= 1
j= 6
k= 12
l= 24

iota 表示从 0 开始自动加 1,所以 i=1<<0, j=3<<1(<< 表示左移的意思),即:i=1, j=6,这没问题,关键在 k 和 l,从输出结果看 k=3<<2,l=3<<3。YK2胜于蓝|优秀个人博客

简单表述:YK2胜于蓝|优秀个人博客

  • i=1:左移 0 位,不变仍为 1;
  • j=3:左移 1 位,变为二进制 110, 即 6;
  • k=3:左移 2 位,变为二进制 1100, 即 12;
  • l=3:左移 3 位,变为二进制 11000,即 24。

Tags:

很赞哦! ()

上一篇:Go 语言变量

下一篇:Go 语言运算符

文章评论

当前时间

快速排名

  • 网站建设|万词霸屏,企业软文推广,刷下拉框
  • 快速排名:不用再等SEO三个月,只需3-7天即可把行业关键词覆盖百度搜索引擎首页,点击不收费,排名报表,真实访问量报表一目了然。

合作加盟

  • 扫码请注明来意,否则不会通过
  • 填写商户姓名不要带有“超市”,“便利店” ,“百货”等
  • 扫码成为快钱代理
  • 扫码加站长微信,为您推荐快钱总部负责人
  • 快钱POSS机(电签版)
  • 1,免押版:签约费率快捷交易0.38%,常规交易0.65%
  • 贷记卡单笔≥3000元视为激活
  • 2,,有押版:签约快捷交易0.38%,常规交易0.65%
  • 激活首刷≥99元,扣除99元系统服务费,多出部分shishi到账
  • 电签版ipos参与每月扶持奖励
  • 电签版ipos与Mpos单独考核台均
  • 30台以上有效激活奖励3000元扶持金
  • 当月交易额≥3000元的为活跃用户

本站推荐

站点信息

  • 建站时间:2018-10-24
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计7074篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 扫描二维码:请注明来意,否则不会通过
  • 微信号:扫描二维码,关注我们
歌名 - 歌手
0:00