美文网首页
内置变量类型与常量

内置变量类型与常量

作者: __apple | 来源:发表于2018-05-26 11:16 被阅读0次

    静态语言,往往都会有一些,内置的变量类型供我们使用,动态语言是在程序运行的时候,动态的添加上去的,这个由解释器帮我们完成,我们不需要考虑,这可能也是动态语言,慢的原因之一吧!
    我们来看Go语言由多少种变量类型呢?

    • bool, string
    • (u)int (u)int8 (u)int16 (u)int32 (u)int64 uintptr
    • byte, rune
    • float32,float64, complex64, complex128
      其中int bool string byte 我在这里就不说了,这个在别的编程语言中基本都有,Go语言也是没有long longlong 这些类型,如果位数比较大就直接用int64就可以了,这里面有个uintptr 它是指针,这个指针的长度也是跟着操作系统来的。
      rune是Go语言里面的字符型,它在这里不叫char叫rune,因为char只有一字节,现在我们是全球化的应用,如果是一字节char会有很多的坑,rune的长度是32位的,unicode一般是2个字节,我们一般使用utf8,他有很多字符都是3字节,因为我们采用4字节的int32来代表rune。
      complex是复数,它有实部与虚部,这个是一个二维平面上面的数,比如我们在高中的学过复数:3 + 4i 这里3就是实部4就是虚部,它具体有什么用呢?
    func euler() {
        fmt.Printf("%.3f\n",
            cmplx.Exp(1i*math.Pi)+1)
    }
    

    我们用这个cmplx的类型,可以很简单进行描述一些很复杂的数学公式,这也就使Go语言在数学计算方面的能力变的很强了。
    说完了内置变量,还有一个比较有意思的东西,常量
    我们来看一下Go语言是如何定义常量的

    func consts() {
        const (
            filename = "abc.txt"
            a, b     = 3, 4
        )
        fmt.Println(filename, c)
    }
    

    直接用const关键字,就可以了,另外如果常量定义在了函数的外部,那么在包内部都可以使用,一般在其他的语言当中,我们都喜欢把常量名字进行大写,但是我们在Go语言中一般不这么做,因为在Go语言中,大小写是有含义的,首字母大写代表的public.
    接下来我们来讲一个特殊的常量,枚举类型
    Go语言没有特殊的枚举关键字, 一般我们都使用const()

    func enums() {
        const (
            cpp = iota
            php
            python
            golang
            javascript
        )
    
        const (
            b = 1 << (10 * iota)
            kb
            mb
            gb
            tb
            pb
        )
    
        fmt.Println(cpp, javascript, python, golang)
        fmt.Println(b, kb, mb, gb, tb, pb)
    }
    
    

    这里的iota可以是个自增值的种子如果你写的出来表达式,那么就能把你想要的定义出来,是不是感觉像个彩蛋,很牛逼的感觉 有没有,怎么样你学会了嘛!赶紧在编辑器里面练两次就会了,加油!!!!

    相关文章

      网友评论

          本文标题:内置变量类型与常量

          本文链接:https://www.haomeiwen.com/subject/bayjrftx.html